1
我是一個奇怪的問題,我希望你能幫助我。比較兩個浮點值 - 不完全相同
從來就開頭兩個值:
var_dump($order_sum);
var_dump($orders_obj->getOrders_preisliste_sum());
var_dump($order_sum != $orders_obj->getOrders_preisliste_sum());
結果:
float(49.7)
string(7) "49.7000"
bool(true)
這一切是好的,但爲什麼是這樣還「真」如果我對它們進行比較?
var_dump($order_sum);
var_dump(floatval($orders_obj->getOrders_preisliste_sum()));
var_dump($order_sum != floatval($orders_obj->getOrders_preisliste_sum()));
結果:
float(49.7)
float(49.7)
bool(true) <---
在我看來,這應該是相同的,但在這裏,PHP將其顯示爲不同的。
[閱讀這些內容,直到你得到他們所說的要點](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)。浮點精度比首次出現時更爲複雜。 [這個答案](http://stackoverflow.com/questions/10334688/how-dangerous-is-it-to-compare-floatingpoint-values)也可能提供一些見解。 – Adam
@亞當:他們都應該是'49.700000000000003' – AbraCadaver
我沒有想到任何事情。感謝幫助。我四捨五入的價值,現在一切都是正確的。 –