Как перевести десятичную дробь в обыкновенную в 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. Вы можете выбрать подход, который лучше всего подходит для ваших потребностей и предпочтений. Важно понимать, что при переводе десятичной дроби в обыкновенную дробь могут возникать неточности из-за конечной точности представления чисел с плавающей запятой.

Видео по теме

Перевод обыкновенной дроби в десятичную. Смотри, чтобы не ошибиться на экзамене!

Как перевести дробь в десятичную

Перевод периодической дроби в обыкновенную

Похожие статьи:

Как решить 3 задание ЕГЭ информатика на Питоне? 🐍💻

🔍 Как сделать обратную матрицу в питоне: простой и понятный способ

🔎 Как использовать методы в Python: подробное руководство для начинающих 🐍

Как перевести десятичную дробь в обыкновенную в Python? 🧮💻

🔎 Как расширить массив Python: советы и руководство по увеличению массива

:camera_with_flash: Как сделать снимок с веб-камеры на Python: простой гайд для начинающих :camera_with_flash:

🔌 Как подключить Arduino к Python: пошаговая инструкция