Python flutuar para conversão int
Basicamente, estou convertendo um float para um int, mas nem sempre tenho o valor esperad
Aqui está o código que estou executando:
x = 2,51
print("--------- 251.0")
y = 251.0
print(y)
print(int(y))
print("--------- 2.51 * 100")
y = x * 100
print(y)
print(int(y))
print("--------- 2.51 * 1000 / 10")
y = x * 1000 / 10
print(y)
print(int(y))
print("--------- 2.51 * 100 * 10 / 10")
y = x * 100 * 10 / 10
print(y)
print(int(y))
x = 4.02
print("--------- 402.0")
y = 402.0
print(y)
print(int(y))
print("--------- 4.02 * 100")
y = x * 100
print(y)
print(int(y))
print("--------- 4.02 * 1000 / 10")
y = x * 1000 / 10
print(y)
print(int(y))
print("--------- 4.02 * 100 * 10 / 10")
y = x * 100 * 10 / 10
print(y)
print(int(y))
E aqui está o resultado (o primeiro valor é o resultado da operação, o segundo valor é int () da mesma operação):
--------- 251.0
251.0
251
--------- 2.51 * 100
251.0
250
--------- 2.51 * 1000 / 10
251.0
251
--------- 2.51 * 100 * 10 / 10
251.0
250
--------- 402.0
402.0
402
--------- 4.02 * 100
402.0
401
--------- 4.02 * 1000 / 10
402.0
401
--------- 4.02 * 100 * 10 / 10
402.0
401
2.51 e 4.02 são os únicos valores que levam a esse comportamento estranho no intervalo 2,50 -> 5,00. Todos os outros dois dígitos desse intervalo são convertidos em int sem nenhum problema quando são dadas as mesmas operaçõe
Então, o que estou perdendo que leva a esses resultados? A propósito, estou usando o Python 2.7.2.