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 denominator.

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.



Share this Tutorial / Exercise on : Facebook and Twitter

Python: Tips of the Day

Getting rid of unwanted characters:

You can get rid of whitespaces or any specific character using strip methods in Python. You can use either plain strip for both sides, lstrip for the left side and rstrip for the right side only.

str="+++Welcome python+++"
str.strip()

print(str)

Output:

+++Welcome python+++