From: "Anton Hörnquist" Date: 2008-09-12T02:59:39+09:00 Subject: Re: Array#pack and String#unpack query I forgot a thing: I expected the output to be the same for "e*" and "E*": [1.0, 0.75, 0.5, 0.1, 0.025, 0.01] [1.0, 0.75, 0.5, 0.1, 0.025, 0.01] Am I wrong? /Anton Anton Hörnquist wrote: > Hi, > > In order to learn a bit of ruby I'm trying to make a module for reading > and writing audio files in WAV format. First and foremost I'd like to > read and write files with 32-bit float bitdepth. > > I'm using Array#pack and String#unpack but run into trouble with > precision. > > The following of code.. > > arr = [ 1.0, 0.75, 0.5, 0.1, 0.025, 0.01 ] > p arr.pack("e*").unpack("e*") > p arr.pack("E*").unpack("E*") > > ...will output this: > > [1.0, 0.75, 0.5, 0.100000001490116, 0.025000000372529, > 0.00999999977648258] > [1.0, 0.75, 0.5, 0.1, 0.025, 0.01] > > How come? > > /Anton -- Posted via http://www.ruby-forum.com/.