# Precision and ==

**URL:** <https://www.ruby-forum.com/t/precision-and/186457>\
**Category:** Ruby\
**Created:** [April 7, 2010, 1:02pm UTC](https://www.ruby-forum.com/t/precision-and/186457 "2010-04-07T13:02:43Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![LAMBEAU\_Bernard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/5fc32e/32.png) [@LAMBEAU\_Bernard](https://www.ruby-forum.com/u/LAMBEAU_Bernard)\
**Post date:** [April 7, 2010, 1:02pm UTC](https://www.ruby-forum.com/t/precision-and/186457/1 "2010-04-07T13:02:43Z")

</div>

We all know that finite representation comes with some difficulties…  
but…

x = 45.0\*(Math::PI / 180.0)  
y = 0.785398163397448  
puts “#{x.class} : #{x}”  
puts “#{y.class} : #{y}”  
puts 45.0\*(Math::PI / 180.0) == 0.785398163397448

prints

Float : 0.785398163397448  
Float : 0.785398163397448  
false

Does to\_s show something less precise than the internal representation  
of  
Floats?

thx  
Bernard

---

<div class="post-metadata">

**Author:** ![LAMBEAU\_Bernard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/5fc32e/32.png) [@LAMBEAU\_Bernard](https://www.ruby-forum.com/u/LAMBEAU_Bernard)\
**Post date:** [April 7, 2010, 1:07pm UTC](https://www.ruby-forum.com/t/precision-and/186457/2 "2010-04-07T13:07:59Z")

</div>

On Wed, Apr 7, 2010 at 1:02 PM, LAMBEAU Bernard [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Float : 0.785398163397448  
> Float : 0.785398163397448  
> false
> 
> Does to\_s show something less precise than the internal representation of  
> Floats?

Yes, it rounds to 15 decimal positions:

irb(main):001:0\> x = 45.0\*(Math::PI / 180.0)  
=\> 0.785398163397448  
irb(main):002:0\> y = 0.785398163397448  
=\> 0.785398163397448  
irb(main):003:0\> puts “#{x.class} : #{”%.20f" % x}"  
Float : 0.78539816339744827900  
=\> nil  
irb(main):004:0\> puts “#{y.class} : #{”%.20f" % y}"  
Float : 0.78539816339744794593

Jesus.
