Как перевести десятичную дробь в обыкновенную в Python? 🧮💻
Для перевода десятичной дроби в обыкновенную дробь в Python можно воспользоваться функцией fractions.Fraction() из модуля fractions. Вот пример:
from fractions import Fraction
decimal = 0.75
fraction = Fraction(decimal)
print(fraction.numerator) # Числитель
print(fraction.denominator) # Знаменатель
В этом примере мы импортируем класс Fraction из модуля fractions, затем передаем десятичную дробь в конструктор Fraction. Далее мы можем получить числитель и знаменатель результирующей обыкновенной дроби, используя атрибуты numerator и denominator.
Например, если у нас есть десятичная дробь 0.75, то код выше выведет:
3
4
Таким образом, десятичная дробь 0.75 эквивалентна обыкновенной дроби 3/4.
Детальный ответ
Как перевести десятичную дробь в обыкновенную в Python
Перевод десятичной дроби в обыкновенную является одной из распространенных задач в программировании. В Python есть несколько способов решить эту задачу. Давайте рассмотрим несколько подходов.
1. Используя модуль fractions
Модуль fractions предоставляет класс Fraction, который позволяет работать с обыкновенными дробями. Он имеет методы для создания обыкновенной дроби и выполнения различных операций с ней.
from fractions import Fraction
decimal = 0.75
fraction = Fraction(decimal)
print(fraction) # выводит 3/4
В этом примере мы создаем объект Fraction, передавая ему десятичную дробь 0.75. Затем мы выводим результат, который является обыкновенной дробью 3/4.
2. Используя функцию gcd
Если вы предпочитаете использовать базовые функции Python, вы можете воспользоваться функцией gcd из модуля math для вычисления наибольшего общего делителя числителя и знаменателя обыкновенной дроби.
from math import gcd
decimal = 0.6
numerator = int(decimal * 10)
denominator = 10
common_divisor = gcd(numerator, denominator)
fraction = Fraction(numerator // common_divisor, denominator // common_divisor)
print(fraction) # выводит 3/5
В этом примере мы умножаем десятичную дробь на 10, чтобы получить целое число в числителе (6), а затем используем функцию gcd для вычисления наибольшего общего делителя числителя и знаменателя (6 и 10). Затем мы создаем объект Fraction, используя целочисленное деление числителя и знаменателя на наибольший общий делитель.
3. Используя алгоритм Евклида
Еще один способ перевести десятичную дробь в обыкновенную дробь - это использовать алгоритм Евклида. Вычисляем наибольший общий делитель числителя и знаменателя и делим оба числа на него.
decimal = 0.4
numerator = int(decimal * 100)
denominator = 100
def euclidean_algorithm(a, b):
while b != 0:
a, b = b, a % b
return a
common_divisor = euclidean_algorithm(numerator, denominator)
fraction = Fraction(numerator // common_divisor, denominator // common_divisor)
print(fraction) # выводит 2/5
В этом примере мы умножаем десятичную дробь на 100, чтобы получить целое число в числителе (40). Затем мы используем алгоритм Евклида (функцию euclidean_algorithm) для вычисления наибольшего общего делителя числителя и знаменателя (40 и 100). Затем мы создаем объект Fraction, используя целочисленное деление числителя и знаменателя на наибольший общий делитель.
Заключение
В этой статье мы рассмотрели несколько способов перевода десятичной дроби в обыкновенную дробь в Python. Вы можете выбрать подход, который лучше всего подходит для ваших потребностей и предпочтений. Важно понимать, что при переводе десятичной дроби в обыкновенную дробь могут возникать неточности из-за конечной точности представления чисел с плавающей запятой.