In this guide, you'll explore Python's fractions module, which is used to work with rational numbers. Learn its features and examples for precise fractional calculations.
The fractions
module in Python provides support for rational number arithmetic. The Fraction
class in this module allows you to create fractions from integers, floats, decimal numbers, and strings, and perform arithmetic operations with them.
Table of Contents
- Introduction
- Creating Fractions
- Arithmetic Operations
- Properties of Fractions
- Methods of the Fraction Class
limit_denominator
from_float
from_decimal
- Examples
- Basic Fraction Operations
- Converting Float to Fraction
- Limiting the Denominator
- Real-World Use Case
- Conclusion
- References
Introduction
The fractions
module provides a Fraction
class that supports exact arithmetic with rational numbers. This is useful when precision is critical, such as in financial calculations or mathematical computations.
Creating Fractions
You can create Fraction
objects from integers, strings, floats, and Decimal
objects.
from fractions import Fraction
# From integers
f1 = Fraction(3, 4)
print(f1) # 3/4
# From string
f2 = Fraction('3/4')
print(f2) # 3/4
# From float
f3 = Fraction(0.75)
print(f3) # 3/4
# From Decimal
from decimal import Decimal
f4 = Fraction(Decimal('0.75'))
print(f4) # 3/4
Output:
3/4
3/4
3/4
3/4
Arithmetic Operations
Fraction
objects support all the usual arithmetic operations.
from fractions import Fraction
f1 = Fraction(1, 3)
f2 = Fraction(2, 3)
print(f1 + f2) # 1
print(f1 - f2) # -1/3
print(f1 * f2) # 2/9
print(f1 / f2) # 1/2
Output:
1
-1/3
2/9
1/2
Properties of Fractions
Numerator and Denominator
You can access the numerator and denominator of a Fraction
object.
from fractions import Fraction
f = Fraction(3, 4)
print(f.numerator) # 3
print(f.denominator) # 4
Output:
3
4
Methods of the Fraction Class
limit_denominator
The limit_denominator
method finds and returns the closest Fraction
to the given fraction that has a denominator at most max_denominator
.
from fractions import Fraction
f = Fraction(22, 7)
print(f.limit_denominator(10)) # 3/1
Output:
22/7
from_float
The from_float
method creates a Fraction
from a floating-point number.
from fractions import Fraction
f = Fraction.from_float(0.75)
print(f) # 3/4
Output:
3/4
from_decimal
The from_decimal
method creates a Fraction
from a Decimal
object.
from fractions import Fraction
from decimal import Decimal
f = Fraction.from_decimal(Decimal('0.75'))
print(f) # 3/4
Output:
3/4
Examples
Basic Fraction Operations
Perform basic arithmetic operations with fractions.
from fractions import Fraction
f1 = Fraction(1, 2)
f2 = Fraction(3, 4)
print(f1 + f2) # 5/4
print(f1 - f2) # -1/4
print(f1 * f2) # 3/8
print(f1 / f2) # 2/3
Output:
5/4
-1/4
3/8
2/3
Converting Float to Fraction
Convert a floating-point number to a fraction.
from fractions import Fraction
f = Fraction.from_float(0.5)
print(f) # 1/2
Output:
1/2
Limiting the Denominator
Find the closest fraction to a given fraction with a limited denominator.
from fractions import Fraction
f = Fraction(355, 113)
print(f.limit_denominator(10)) # 22/7
Output:
22/7
Real-World Use Case
Financial Calculations
In financial applications, precise arithmetic is crucial. The Fraction
class ensures exact results without the rounding errors that can occur with floating-point arithmetic.
from fractions import Fraction
price_per_unit = Fraction(19, 100) # $0.19 per unit
quantity = 200
total_cost = price_per_unit * quantity
print(total_cost) # 38/1, which is $38.00
Output:
38
Conclusion
The fractions
module in Python provides a robust way to perform exact arithmetic with rational numbers. The Fraction
class supports various ways to create fractions and perform arithmetic operations while maintaining precision.
Comments
Post a Comment
Leave Comment