Issue #4656 has been updated by Nobuyoshi Nakada.

Status changed from Open to Rejected

Because they are different values.

  $ ruby -e 'p 1.323333333333333 == 3970 / 3000.0'
  false
  $ ruby -e 'p 1.3233333333333333 == 3970 / 3000.0'
  true

----------------------------------------
Bug #4656: Float#to_s can produce too many digits
http://redmine.ruby-lang.org/issues/4656

Author: Kenta Murata
Status: Rejected
Priority: Normal
Assignee: Kenta Murata
Category: 
Target version: 
ruby -v: ruby 1.9.3dev (2011-05-09 trunk 31491) [x86_64-darwin10.7.0]


In trunk, Float#to_s can produce too many digits.

$ ./miniruby -ve 'puts Float::DIG, 3970 / 3000.0'
ruby 1.9.3dev (2011-05-09 trunk 31491) [x86_64-darwin10.7.0]
15
1.3233333333333333

In the above example, Float::DIG is 15, so the number of significant digits is at most 16.
However, the indefinite 17th digit is produced.

1.9.2 also has this issue.


-- 
http://redmine.ruby-lang.org