下面的代码是用python写的,
x = 0.29
x = int(x*100)
print(x)
它打印28,这会导致我的代码中出现无限循环. 我如何解决此问题?我认为这是一些机器精度的问题. 在我的程序中,我希望int(x*100)的值是29.
下面的代码是用python写的,
x = 0.29
x = int(x*100)
print(x)
它打印28,这会导致我的代码中出现无限循环. 我如何解决此问题?我认为这是一些机器精度的问题. 在我的程序中,我希望int(x*100)的值是29.
如果您遇到浮点精度问题,请try 使用Decimal
库,该库旨在为浮点数提供更高的精度:
from decimal import Decimal
x = Decimal('0.29')
x = int(x * 100)
print(x)
应该会像您预期的那样输出29
.
根据OP comments :
from decimal import Decimal
def get_float():
return 0.29 # Simulating the function that returns a float
x = int(Decimal(str(get_float())) * 100)
print(x)