2015-09-29 4 views
-2

Я использую Python 3.5. У меня есть основные операции, но я получаю неверный результат:Неожиданный десятичный знак на вычитание

def main(argv): 
    cms=None 
    damin=4.815 
    dbmax=4.858 
    it=(dbmax-damin)*1000 
    print('Damin {0} Dbmax {1} IT {2}'.format(damin, dbmax, dbmax-damin)) 

поэтому результат:

Damin 4.815 Dbmax 4.858 IT 0.04299999999999926 

Но я ожидал:

Damin 4.815 Dbmax 4.858 IT 0.043 
+4

https://docs.python.org/3/tutorial/floatingpoint.html –

ответ

0

Чтение на числа с плавающей точкой может стоит: https://docs.python.org/3/tutorial/floatingpoint.html

Не каждый номер может быть представлен достаточно для каждого и программы делают все возможное, чтобы использовать максимально возможное представительство. В том числе при интерпретации магических чисел, записанных в код.

+1

Совет: 'decimal' модуль может получить самое близкое число с плавающей точкой. –

Смежные вопросы