[问题] 请问 python 精度的问题

楼主: fengc (q )   2018-07-26 16:22:52
我执行
>>> 10 * 0.000001 == 1 * 0.00001
False
应该是python 精度的问题
请问有办法让这两个相等吗?
作者: IAMPF (PF)   2018-07-26 16:34:00
10 * 0.000001 - 1 * 0.00001 < sys.float_info.epsilon
作者: TuCH (谬客)   2018-07-26 16:36:00
round(10*0.000001,10)==round(1*0.00001,10)Decimal('10')*Decimal('0.000001)==Decimal('1')*Decimal('
作者: TitanEric (泰坦)   2018-07-26 17:53:00
推一楼方法 不要直接用等于 这是IEEE 754
作者: f496328mm (为什么会流泪)   2018-07-26 17:54:00
一楼的方法好'数学'
作者: sherees (ShaunTheSheep)   2018-07-27 11:26:00
用一楼的方法记得加绝对值喔因为sys.float_info.epsilon>0 所以负数会是True举个例子1-2>epsilon>>True 但1!=2 这个结果明显是误判<更正

Links booklink

Contact Us: admin [ a t ] ucptt.com