6
爲什麼第一個示例打印出錯誤的結果?Perl模運算符問題
perl -le 'print $x = 100*1.15 % 5'
4
perl -le 'print $x = 1000*1.15 % 5'
0
爲什麼第一個示例打印出錯誤的結果?Perl模運算符問題
perl -le 'print $x = 100*1.15 % 5'
4
perl -le 'print $x = 1000*1.15 % 5'
0
這是因爲浮點運算的。
print $x = int(100*1.15);
給你114
四捨五入。請記住,計算機不能完美表示實際的小數位數 - 它們近似。在我的電腦上,perl -le 'print $x = (100*1.15)-115'
給出結果-1.4210854715202e-14
,這意味着100*1.15
差不多是115,而不是115.
這也發生在PHP中。 Python說它是5.0(是,%5 = 5.0) – NullUserException 2010-07-26 14:30:42
@NullUserException:tnanks。 python shell對測試浮點數算術的結果很有幫助:-) – 2010-07-26 14:56:41
所以是ruby。 Ruby告訴我這是4.999999 – NullUserException 2010-07-26 15:04:57