2011-07-13 35 views
0
$nt=(float) number_format("26031.87",2,".",""); // 26031.87 
    $nt2=(float) 546669.02-520637.15; // 26031.87 

    if($nt>$nt2) 
    echo "$nt/$nt2 ⇽ What's wrong with this!? :@"; 

的一點是,爲什麼出現這種情況?如果視覺看起來是一樣的,矮胖的解決方案是做number_format(),以$ NT2,但是......爲什麼?意想不到的PHP數學小數操作

更新:: $ $ NT-NT2輸出3.6379788070917E-12

回答

2

每Zend公司:

PHP似乎沒有比較兩個浮點數時做順理成章的事情,這是由於數字的內部表示。解決方案根本就不會比較平等!

在比較它們或使用bc_math之前將它們轉換爲INT。

+0

感謝您的提示:) – AgelessEssence