Как перевести десятичные дроби в целые числа в Python?

Как можно изменить программу, чтобы корни уравнения выводились в виде обыкновенных дробей, а не в десятичном формате? <br/> print('Решаем уравнение a•x²+b•x+c=0') <br/> a = input('Введите значение a: ') <br/> b = input('Введите значение b: ') <br/> c = input('Введите значение c: ') <br/> a = float(a) <br/> b = float(b) <br/> c = float(c) <br/> d = b**2 - 4*a*c <br/> print('Дискриминант = ' + str(d)) <br/> if d < 0: <br/> print('Корней нет') <br/> elif d == 0: <br/> x = -b / (2 * a) <br/> print('x = ' + str(x)) <br/> else: <br/> x1 = (-b + d ** 0.5) / (2 * a) <br/> x2 = (-b - d ** 0.5) / (2 * a) <br/> print('x₁ = ' + str(x1)) <br/> print('x₂ = ' + str(x2))
  • 11 апреля 2024 г. 8:39
Ответы на вопрос 1
Для перевода десятичных дробей в целые числа в Python можно воспользоваться методом `fraction` из модуля `fractions`:

```python
from fractions import Fraction

decimal_number = 3.5
fraction = Fraction(decimal_number).limit_denominator()

numerator = fraction.numerator
denominator = fraction.denominator

print(f'Десятичная дробь {decimal_number} равна обыкновенной дроби {numerator}/{denominator}')
```

Для изменения программы таким образом, чтобы корни уравнения выводились в виде обыкновенных дробей, можно также воспользоваться модулем `fractions`:

```python
from fractions import Fraction

print('Решаем уравнение a•x²+b•x+c=0')
a = input('Введите значение a: ')
b = input('Введите значение b: ')
c = input('Введите значение c: ')
a = float(a)
b = float(b)
c = float(c)
d = b**2 - 4*a*c
print('Дискриминант = ' + str(d))

if d < 0:
    print('Корней нет')
elif d == 0:
    x = -b / (2 * a)
    print('x = ' + str(x))
else:
    x1 = (-b + Fraction(d).sqrt()) / (2 * a)
    x2 = (-b - Fraction(d).sqrt()) / (2 * a)
    print('x₁ = ' + str(x1))
    print('x₂ = ' + str(x2))
```

Таким образом, корни уравнения будут выводиться в виде обыкновенных дробей, а не в десятичном формате.
Похожие вопросы