w3resource

Python Math: Convert a floating point number to an approximate rational value

Python Math: Exercise-47 with Solution

Write a Python program to convert a floating point number (PI) to an approximate rational value on the various denominators.

Note: max_denominator = 1000000

Sample Solution:

Python Code:

import fractions
import math

print('PI       =', math.pi)

f_pi = fractions.Fraction(str(math.pi))
print('No limit =', f_pi)

for d in [1, 5,  50, 90, 100, 500, 1000000]:
    limited = f_pi.limit_denominator(d)
    print('{0:8} = {1}'.format(d, limited))

Sample Output:

PI       = 3.141592653589793                                                                                
No limit = 3141592653589793/1000000000000000                                                                
       1 = 3                                                                                                
       5 = 16/5                                                                                             
      50 = 22/7                                                                                             
      90 = 267/85                                                                                           
     100 = 311/99                                                                                           
     500 = 355/113                                                                                          
 1000000 = 3126535/995207
 

Flowchart:

Flowchart: Convert a floating point number to an approximate rational value

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to add, subtract, multiply and divide two fractions.
Next: Write a Python program to generate random float numbers in a specific numerical range.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://198.211.115.131/python-exercises/math/python-math-exercise-47.php