Rational numbers. Class Fraction
Contents
- 1. The concept of a rational number. Representation of rational numbers. Class Fraction
- 2. Creating an object of the Fraction class
- 3. Operations on rational numbers. Examples
- 4. The advantages of using rational numbers. Example
- 5. Function as_integer_ratio(). Example
- 6. Function Fraction.from_float(). Example
- 7. Function float(). Example
- Related topics
Search other websites:
1. The concept of a rational number. Representation of rational numbers. Class Fraction
A rational number is a number that can be represented as a rational fraction m/n, where m, n, respectively, are the numerator and denominator, which have an integer value. For example, in fraction 5/6, the value m = 5, the value n = 6.
The Python programming language for working with rational numbers offered a Fraction class. In the class, the numerator m and the denominator n are respectively implemented. In Fraction class is automatically performed the simplification fraction (e.g., 9/18 => 1/2).
To use the capabilities of the Fraction class, you must first include the fractions module
from fractions import Fraction
⇑
2. Creating an object of the Fraction class
An object of the Fraction class can be created in one of two ways.
Method 1. Using a constructor that contains integer values for the numerator and denominator.
Example.
a = Fraction(5, 6) # a = 5/6 - rational number b = Fraction(8, 12) # b = 2/3 - rational number
In the above example, in a line
b = Fraction(8, 12)
the value of the numerator 8 and the denominator 12 of the variable b will be automatically simplified to 2/3. That is, the numerator in the class is 2, the denominator is 3.
Method 2. Using a constructor that gets a string with a real value.
Example.
a = Fraction('1.33') # a = 133/100 b = Fraction('3.719') # b = 3719/1000 c = Fraction('-1.5') # c = -3/2 d = Fraction('3.7') + Fraction('5.2') # d = 89/10
⇑
3. Operations on rational numbers. Examples
The following arithmetic operations can be performed on objects of the Fraction class:
- addition (+);
- substraction (–);
- multiplication (*);
- division (/);
- taking the remainder of the division (%).
Examples.
# Rational numbers from fractions import Fraction a = Fraction(5, 6) + Fraction(3, 2) # a = 7/3 b = a - Fraction(3, 5) # b = 26/15 c = b * Fraction(101, 202) # c = 13/15 d = c / b # d = 1/2 e = d % a # e = 1/2
Operation exponentiation of Fraction type number returns the real result
f = Fraction(1,2)**Fraction(1,2) # f = 0.7071067811865476
⇑
4. The advantages of using rational numbers. Example
As you know, operations with real numbers have a precision limit, which depends on the capabilities of hardware that implement the mathematics of real numbers. Compared to real numbers, rational numbers provide
- the desired precision of calculations;
- automatic simplification of the result.
Example. The example demonstrates the loss of precision for the expression 0.2 + 0.2 + 0.2-0.4.
# Rational numbers, advantages of the use from fractions import Fraction a = 0.2+0.2+0.2-0.4 # a = 0.20000000000000007 -the precision is lost b = Fraction('0.2')+Fraction('0.2')+Fraction('0.2')-Fraction('0.4') # b = 1/5 print('a = ', a) print('b = ', b)
The result of the program
a = 0.20000000000000007 b = 1/5
⇑
5. Function as_integer_ratio(). Example
The as_integer_ratio() function returns the numerator and denominator that matches the given number. The general form of the method call
(real_number).as_integer_ratio()
here
- real_number – floating point number.
The function is used to support conversion to rational numbers.
Example.
# function as_integer_ratio() from fractions import Fraction # conversion to the fractional number a = (3.5).as_integer_ratio() # a = (7, 2) b = (11.7).as_integer_ratio() # b = (3293257227514675, 281474976710656) # conversion to type Fraction a = 8.5 c = Fraction(*a.as_integer_ratio()) # c = 17/2
In the above example, the symbol * means the syntax for unpacking a tuple into separate arguments.
⇑
6. Function Fraction.from_float(). Example
The from_float() method of the Fraction class allows you to get the numerator and denominator of a real number as well as the as_integer_ratio() method.
Example.
# function from_float of the Fraction class from fractions import Fraction y = Fraction.from_float(2.25) # y = 9/4 x = 3.8 # тип float y = Fraction.from_float(x) # y = 4278419646001971/1125899906842624 x = -8.75 y = Fraction.from_float(x) # y = -35/4
⇑
7. Function float(). Example
The from_float() function of the Fraction class allows you to get the numerator and denominator of a real number as well as the as_integer_ratio() method.
Example.
# function float() of class Fraction from fractions import Fraction # argument is a variable of real type x = Fraction(11, 4) y = float(x) # y = 2.75 # argument - number y = float(Fraction(7,6)) # y = 1.1666666666666667
⇑
Related topics
- Representation of numbers of different types. Basic numeric types. Number conversion functions
- Numbers with fixed precision. Class Decimal
⇑