Todd Benson
8/5/2008 12:18:00 AM
On Mon, Aug 4, 2008 at 5:02 PM, Sebastian Hungerecker
<sepp2k@googlemail.com> wrote:
> Joe Davison wrote:
>> Integer(33.80 * 100) ==> 3379
>>
>> however,
>>
>> Integer(3.380 * 1000) ==> 3380
>>
>> Doesn't seem like a floating point round off error.
>
>>> "%.30f" % (33.80 * 100)
> => "3379.999999999999545252649113535881"
>
> Seems like one to me.
>
> HTH,
> Sebastian
Just playing around a little (no exhaustive testing), but it seems
like this only happens with a number string matching
/\A3[2-9]\.[38]0*\Z/ (for nubies, a number that is in the closed
interval 32 to 40 with a following 3 or 8 in the decimal place and
nothing after it except for zero or more zeros). Weird. There might
be other cases.
I'm using the 1.8.7 ruby ver, btw.
Todd