[BUG?] Strange behavior in Integer

new user on MacOsX.
Ruby version: ruby 1.8.2 (2004-12-25) [universal-darwin8.0]
intel MacBook Pro

Working thru the examples in Programming Ruby, I got what I didn't
expect:

Integer(33.80 * 100) ==> 3379

however,

Integer(3.380 * 1000) ==> 3380

Doesn't seem like a floating point round off error.

joe

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

···

--
Jabber: sepp2k@jabber.org
ICQ: 205544826

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

···

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

Todd Benson <caduceass@gmail.com> writes:

···

On Mon, Aug 4, 2008 at 5:02 PM, Sebastian Hungerecker > <sepp2k@googlemail.com> wrote:

Joe Davison wrote:

"%.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.

http://docs.sun.com/source/806-3568/ncg_goldberg.html

--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/

Indeed. These errors occur starting with 32, then 512, then 8192,
etc. with expanding ranges. The pattern I get, but I don't
understand, though, why 3 and 8?

Todd

···

On Mon, Aug 4, 2008 at 7:58 PM, Joost Diepenmaat <joost@zeekat.nl> wrote:

Todd Benson <caduceass@gmail.com> writes: There might

be other cases.

http://docs.sun.com/source/806-3568/ncg_goldberg.html