# Decimal to fraction?

I did .1/8, and the output was 0.0125000000. Is there a way to get it to display as 1/80.

edit retag close merge delete

Sort by ยป oldest newest most voted

I've posted an alternate answer to the question at the link above. The basic answer: I ran across another way that's posted here where the author, John D Cook mentions the nsimplify command in SymPy (which you can can access in Sage). Here's nsimplify in action with your example

more

nsimplify is much more subtle and does not always return a rational as with nsimplify(3.2352)

( 2013-09-16 02:11:38 -0500 )edit

There are at least three ways to recover a rational from one of its numerical approximations:

sage: a = .1/8
sage: a.simplest_rational()
1/80
sage: a.nearby_rational(0.0001)
1/80
sage: a.exact_rational()
3602879701896397/288230376151711744


You can have a look to their respective documentations to see the differences. And you should understand that the floating point number a is not equal to 1/80 but to 3602879701896397/288230376151711744 !

more
more

it is fun as also the answers are duplicate ;-)

( 2013-09-16 02:12:34 -0500 )edit