# Just found a round problem

**URL:** <https://www.ruby-forum.com/t/just-found-a-round-problem/179573>\
**Category:** Ruby\
**Created:** [November 29, 2009, 4:36am UTC](https://www.ruby-forum.com/t/just-found-a-round-problem/179573 "2009-11-29T04:36:43Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![rubynut](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8e8cbc/32.png) [@rubynut](https://www.ruby-forum.com/u/rubynut)\
**Post date:** [November 29, 2009, 4:36am UTC](https://www.ruby-forum.com/t/just-found-a-round-problem/179573/1 "2009-11-29T04:36:43Z")

</div>

irb(main):026:0\> 10.499999999999999.round  
=\> 10  
irb(main):027:0\> 10.4999999999999999.round  
=\> 11

Does this happen due to the float problem in any languages including  
ruby?  
Thanks.

---

<div class="post-metadata">

**Author:** ![rubynut](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8e8cbc/32.png) [@rubynut](https://www.ruby-forum.com/u/rubynut)\
**Post date:** [November 29, 2009, 5:07am UTC](https://www.ruby-forum.com/t/just-found-a-round-problem/179573/2 "2009-11-29T05:07:09Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

On Nov 29, 2009, at 12:06 AM, Ruby N. wrote:

> irb(main):026:0\> 10.499999999999999.round  
> =\> 10  
> irb(main):027:0\> 10.4999999999999999.round  
> =\> 11
> 
> Does this happen due to the float problem in any languages including  
> ruby?  
> Thanks.

Thats IEEE 754 float behaviour, yes. python behaves exactly the same.

* * *

Florian G.

smtp: removed\_email\_address@domain.invalid  
jabber: removed\_email\_address@domain.invalid  
gpg: 533148E2

-----BEGIN PGP SIGNATURE-----  
Version: GnuPG/MacGPG2 v2.0.12 (Darwin)

iEYEARECAAYFAksR80wACgkQyLKU2FMxSOLkpwCdFwIj6FfsGK3+ZFFVLPQV0XwJ  
Xa8AnAp6o5sxct7fsDrJUWUkIJ0QmB19  
=bERM  
-----END PGP SIGNATURE-----

---

<div class="post-metadata">

**Author:** ![rubynut](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8e8cbc/32.png) [@rubynut](https://www.ruby-forum.com/u/rubynut)\
**Post date:** [November 29, 2009, 8:27am UTC](https://www.ruby-forum.com/t/just-found-a-round-problem/179573/3 "2009-11-29T08:27:49Z")

</div>

Florian G. wrote:

> On Nov 29, 2009, at 12:06 AM, Ruby N. wrote:
> 
> > irb(main):026:0\> 10.499999999999999.round  
> > =\> 10  
> > irb(main):027:0\> 10.4999999999999999.round  
> > =\> 11
> > 
> > Does this happen due to the float problem in any languages including  
> > ruby?  
> > Thanks.
> 
> Thats IEEE 754 float behaviour, yes. python behaves exactly the same.
> 
> * * *
> 
> Florian G.

And PHP 5 as well.

php -r ‘echo sprintf (“PHP Version = %s\nround(10.499999999999999) =  
%d\nround(10.4999999999999999) = %d\n”, phpversion(),  
round(10.499999999999999), round(10.4999999999999999));’

PHP Version = 5.2.6  
round(10.499999999999999) = 10  
round(10.4999999999999999) = 11

---

<div class="post-metadata">

**Author:** ![rubynut](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8e8cbc/32.png) [@rubynut](https://www.ruby-forum.com/u/rubynut)\
**Post date:** [November 29, 2009, 12:34pm UTC](https://www.ruby-forum.com/t/just-found-a-round-problem/179573/4 "2009-11-29T12:34:51Z")

</div>

Thanks all~

2009/11/29 Steve W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > > Does this happen due to the float problem in any languages including  
> > > ruby?  
> > > Thanks.
> > 
> > Thats IEEE 754 float behaviour, yes. python behaves exactly the same.

---

<div class="post-metadata">

**Author:** ![rubynut](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8e8cbc/32.png) [@rubynut](https://www.ruby-forum.com/u/rubynut)\
**Post date:** [November 29, 2009, 7:15pm UTC](https://www.ruby-forum.com/t/just-found-a-round-problem/179573/5 "2009-11-29T19:15:10Z")

</div>

In C i think its 14/15 significant digits and its probably why.

If you want that much precision, find a way to use a bigger float.

---

<div class="post-metadata">

**Author:** ![rubynut](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8e8cbc/32.png) [@rubynut](https://www.ruby-forum.com/u/rubynut)\
**Post date:** [November 29, 2009, 7:24pm UTC](https://www.ruby-forum.com/t/just-found-a-round-problem/179573/6 "2009-11-29T19:24:06Z")

</div>

Thiago M. wrote:

> In C i think its 14/15 significant digits and its probably why.
> 
> If you want that much precision, find a way to use a bigger float.

BigDecimal and Rational will do the trick.

## Best,

Marnen Laibow-Koser  
[http://www.marnen.org](http://www.marnen.org)  
removed\_email\_address@domain.invalid
