New submission from bsidhom <bsid...@gmail.com>:

The Fractions.from_float() call returns an incorrect value when run on certain 
numbers. Some test runs have been listed below. Note that this problem does not 
exist when the same float is converted to a string and then passed to the 
standard Fraction() constructor; I do not know if this is an inherent problem 
due to the structure of the float itself or an implementation issue.

>>> for x in [1.23, 1.24, 1.25, 1.26, 1.27]:
        print(Fraction.from_float(x))
        print(Fraction(str(x)))

        
2769713770832855/2251799813685248
123/100
5584463537939415/4503599627370496
31/25
5/4
5/4
5674535530486825/4503599627370496
63/50
2859785763380265/2251799813685248
127/100

The problem does not exist if a string literal is passed either:

>>> print(Fraction('1.23'))
123/100

----------
components: Library (Lib)
messages: 116076
nosy: bsidhom
priority: normal
severity: normal
status: open
title: Unexpected Fraction.from_float() Behavior
type: behavior
versions: Python 3.1

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue9829>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to