Форум сайта python.su
Всем привет!
Я прям совсем начинающий, поэтому заранее прошу прощения за такие простые вопросы.
Помогите найти ошибку в решении задачи:
Дано положительное действительное число X. Выведите его дробную часть.
Мое решение:
import math
x=float(input())
a=math.floor(x)
print(x-a)
Если х=17.9, то результат получаю 0.8999999999999986. Почему не 0.9?
Такая же история, если перевожу целое число в дробное:
import math
x=float(input())
a=float(math.floor(x))
print(x-a)
П.С. Через поиск не нашел ничего похожего.
Отредактировано like_hef (Фев. 13, 2018 16:20:55)
Офлайн
потому что float (с плавающей точкой) числа из-за представления чисел в компьютере неточны
Для высокой точности используют другие объекты (например Decimal и Fraction)).
изучаем азы https://docs.python.org/3/tutorial/floatingpoint.html
[code python][/code]
Отредактировано PEHDOM (Фев. 14, 2018 11:45:26)
Офлайн
PEHDOM
потому что float (с плавающей точкой) числа из-за представления чисел в компьютере неточны
Для высокой точности используют другие объекты (например Decimal и Fraction)
Офлайн