2013-06-24 26 views
-2

當15000從15000.00結果中減去減去浮子和整數-1.81898940355E-12 預期結果爲0或0.00怪異的行爲,同時使用PHP

+1

這是正常的,看到http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+0

我不希望15000.00雖則有一個非零小數部分。 –

回答

1
<?php 
$a = number_format(15000.00, 2, '.', ''); 

$b = number_format(15000, 2, '.', ''); 

echo $a - $b; // returns 0 

?> 
+0

因此var_dump((float)1500.00 - (float)1500); – tlenss

4

這是由於浮動不是確切點操作。見

http://en.wikipedia.org/wiki/Floating_point 

另外請注意,爲了1E-12的誤差接近足夠的物理應用(例如測量到米陽光從地球的距離),所以我不會太擔心它。

但請注意,儘管您不應該使用浮點數來計算現金金額。