2015-12-25 3 views
1

Почему, когда я делаю это простое математическое вычитание, я получаю этот ответ?Почему 1-0,9 не 0,1?

In[10]: 1-0.9 
Out[10]: 0.09999999999999998 

Кто-то знает, как это исправить?

ответ

3

См https://docs.python.org/2/tutorial/floatingpoint.html

Используйте round(1-0.9, n) где округляем результат до п знаков после запятой

+0

Благодарим Вас за Ваш ответ и ссылки, это очень полезно. – limitless

+0

Это только исправление, потому что эта операция уменьшает количество бит в значении. В операциях, где размер значения не изменяется, это не будет иметь никакого эффекта. –

0

Это распространенная проблема с точностью с плавающей запятой. Обычно люди круглые, когда отображаются всплывающие окна, поэтому ограничение точности не отображается.

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