[問題] 請問 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