作者fengc (q )
看板Python
标题[问题] 请问 python 精度的问题
时间Thu Jul 26 16:22:52 2018
我执行
>>> 10 * 0.000001 == 1 * 0.00001
False
应该是python 精度的问题
请问有办法让这两个相等吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.150.128.77
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1532593374.A.B0A.html
1F:推 IAMPF: 10 * 0.000001 - 1 * 0.00001 < sys.float_info.epsilon 07/26 16:34
2F:推 TuCH: round(10*0.000001,10)==round(1*0.00001,10) 07/26 16:36
3F:→ TuCH: Decimal('10')*Decimal('0.000001)==Decimal('1')*Decimal(' 07/26 16:37
4F:推 TitanEric: 推一楼方法 不要直接用等於 这是IEEE 754 07/26 17:53
5F:推 f496328mm: 一楼的方法好'数学' 07/26 17:54
6F:推 sherees: 用一楼的方法记得加绝对值喔 07/27 11:26
7F:→ sherees: 因为sys.float_info.epsilon>0 所以负数会是True 07/27 11:27
8F:→ sherees: 举个例子1-2>epsilon>>True 但1!=2 这个结果明显是误判 07/27 11:32
9F:→ sherees: < 07/27 11:33
10F:→ sherees: 更正 07/27 11:34