Найти - Пользователи
Полная версия: Программа не выводит ожидаемое решение
Начало » Python для новичков » Программа не выводит ожидаемое решение
1
rodion1010
Задача: Дано положительное действительное число X. Выведите его дробную часть.

Решение:
 x = float(input())
print(x - int(x))
Тестирую с числом 17.9 и получаю ответ 0.8999999999999986, хотя по логике должно быть 0.9

Почему так происходит?
doza_and
Потому что все действия с плавающими числами выполняются приближенно.
scidam
rodion1010
Дано положительное действительное число X. Выведите его дробную часть.

А здесь вообще лучше со строками работать…
Если вы вводите число с клавиатуры, то input (в Python 3) возвращает строку. Значит дробная часть нашего числа – есть просто второй элемент “разреза” этой строки по символу “точка”.

 x = input('Enter positive floating point number:')
print( 'Fractional part of your number is ', '.' + x.split('.')[1] if len(x.split('.')) > 1 else 'absent, sorry...')

В Python2 input() следует заменить на raw_input().
Shaman
 from decimal import Decimal
x = Decimal('17.9')
print(x - int(x))
rodion1010
Спасибо! Очень интересные решения.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB