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.
I did .1/8, and the output was 0.0125000000. Is there a way to get it to display as 1/80.
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 !
it is fun as also the answers are duplicate ;-)
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
nsimplify is much more subtle and does not always return a rational as with nsimplify(3.2352)
Asked: 11 years ago
Seen: 2,014 times
Last updated: Sep 15 '13