Project

General

Profile

ActionsLike0

Bug #4656

closed

Float#to_s can produce too many digits

Added by mrkn (Kenta Murata) almost 14 years ago. Updated almost 14 years ago.

Status:
Rejected
Target version:
-
ruby -v:
ruby 1.9.3dev (2011-05-09 trunk 31491) [x86_64-darwin10.7.0]
Backport:
[ruby-core:36051]

Description

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.

Updated by nobu (Nobuyoshi Nakada) almost 14 years ago

  • 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

ActionsLike0

Also available in: Atom PDF