Различные результаты в Python для одного и того же графа - PullRequest
0 голосов
/ 06 ноября 2019

Я написал простой расчет, но получил значение, отличное от образца. Как получилось, что Python явно округляется по-разному?

PriceListOld = 23 
PriceListNew = []

if PriceListOld <=20:
    PriceListNew = PriceListOld * 0.8
elif PriceListOld >20 and PriceListOld <=50:
    PriceListNew = PriceListOld * 0.6
elif PriceListOld >50:
    PriceListNew = PriceListOld * 0.4
print(PriceListNew)     

print(23 -(4*2.3))    #<-- This is the Sample. 

1 Ответ

0 голосов
/ 06 ноября 2019

Ваш демо-код излишне сложен;с таким же успехом вы могли бы написать:

>>> print(23-4*2.3)    #<-- This is the Sample.
13.8
>>> print(23*0.6)
13.799999999999999

Как получается, что Python явно округляет по-разному?

Это происходит из-за того, что 0,6 не представляется точно в двоичном виде. Если вы просто хотите получить результат 13,8, вы можете уйти с

>>> print(23*6/10)
13.8
...