# Strange behavior in Integer

**URL:** <https://www.ruby-forum.com/t/strange-behavior-in-integer/144988>\
**Category:** Ruby\
**Created:** [August 5, 2008, 12:00am UTC](https://www.ruby-forum.com/t/strange-behavior-in-integer/144988 "2008-08-05T00:00:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joe\_Davison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b19c9b/32.png) [@Joe\_Davison](https://www.ruby-forum.com/u/Joe_Davison)\
**Post date:** [August 5, 2008, 12:00am UTC](https://www.ruby-forum.com/t/strange-behavior-in-integer/144988/1 "2008-08-05T00:00:54Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Joe\_Davison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b19c9b/32.png) [@Joe\_Davison](https://www.ruby-forum.com/u/Joe_Davison)\
**Post date:** [August 5, 2008, 12:04am UTC](https://www.ruby-forum.com/t/strange-behavior-in-integer/144988/2 "2008-08-05T00:04:25Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Joe\_Davison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b19c9b/32.png) [@Joe\_Davison](https://www.ruby-forum.com/u/Joe_Davison)\
**Post date:** [August 5, 2008, 2:20am UTC](https://www.ruby-forum.com/t/strange-behavior-in-integer/144988/3 "2008-08-05T02:20:05Z")

</div>

On Mon, Aug 4, 2008 at 5:02 PM, Sebastian H.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> =\> “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

---

<div class="post-metadata">

**Author:** ![Joe\_Davison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b19c9b/32.png) [@Joe\_Davison](https://www.ruby-forum.com/u/Joe_Davison)\
**Post date:** [August 5, 2008, 3:03am UTC](https://www.ruby-forum.com/t/strange-behavior-in-integer/144988/4 "2008-08-05T03:03:55Z")

</div>

Todd B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> 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](http://docs.sun.com/source/806-3568/ncg_goldberg.html)

---

<div class="post-metadata">

**Author:** ![Joe\_Davison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b19c9b/32.png) [@Joe\_Davison](https://www.ruby-forum.com/u/Joe_Davison)\
**Post date:** [August 5, 2008, 5:24am UTC](https://www.ruby-forum.com/t/strange-behavior-in-integer/144988/5 "2008-08-05T05:24:55Z")

</div>

On Mon, Aug 4, 2008 at 7:58 PM, Joost D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Todd B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes: There might
> 
> > be other cases.
> 
> [http://docs.sun.com/source/806-3568/ncg\_goldberg.html](http://docs.sun.com/source/806-3568/ncg_goldberg.html)

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
