Python浮动比较

时间:2014-03-13 14:19:45

标签: python python-2.6

我有一个问题需要理解以下python if子句。

key = '033411943470228118020044104711300230269019812152152'    
my_secret = hex(int(key[0:3]))[2:].zfill(2) + hex(int(key[4:7]))[2:].zfill(2) + hex(int(key[8:11]))[2:].zfill(2) + hex(int(key[12:15]))[2:].zfill(2) + hex(int(key[16:19]))[2:].zfill(2) 

    if float(my_secret) == 4.74678e+018:

有人能告诉我如何构造导致if子句为真的my_secret吗?

1 个答案:

答案 0 :(得分:3)

my_secret = 4.74678e+018

除非不是:不要使用花车准确数量!

并非所有数字都可以表示为浮点数,因此您可能会出现舍入错误,这会在进行精确比较时导致意外结果。