[问题] float加减运算问题

楼主: yimean (温柔杀手)   2020-07-17 09:32:23
各位版上大大早上好。
我在float的加减运算遇到了一些问题。不囉嗦直接看Code跟结果。
Code
for i in range(0,len(input_list),4): #将input_list 以四个为一组作分组运算
if input_list[i+1] != 0:
#如果中心值不为0,就进行上下限的计算。
Upper=float(input_list[i+1])+float(input_list[i+2])#上限
Lower=float(input_list[i+1])-float(input_list[i+3])#下限
input_list打印结果如下
中心值 上限 下限
['外径', '4.1', '0.1', '0.1', '内径', '', '', '', '冲孔', '', '', '', '高度',
'', '', '', '板厚', '', '', '']
这个List的内容是从Entrybox跟Label get来的。
执行结果
select * from ItemSpec where (外径 <= 4.199999999999999 and 外径 >=
3.9999999999999996)
我的问题是,我预期得到的结果是4.2跟4.0。
这个进到sqlit比对应该会有不一样的结果
请问这是出了什么问题呢?还是说我应该要怎么解决?
烦请高手指导,感恩。
作者: OrzOGC (洞八达人.拖哨天王)   2020-07-17 09:35:00
自己取值,上面有篇类似的
楼主: yimean (温柔杀手)   2020-07-17 10:36:00
感谢,我最后用Dec解决问题
作者: s860134 (s860134)   2020-07-17 20:39:00
这叫浮点数
楼主: yimean (温柔杀手)   2020-07-18 08:33:00
是的我用10进位浮点树解决问题,感谢指导。
作者: germun (ger)   2020-07-18 12:35:00
万年问题 google 浮点数精确度

Links booklink

Contact Us: admin [ a t ] ucptt.com