[英]Compare two float values - not identical
我有一個奇怪的問題,希望您能幫助我。
一開始我有兩個值:
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將其顯示為不同的內容。
您可以使用bccomp函數(bcmath擴展名)比較您的浮點值: http ://www.php.net/manual/zh/function.bccomp.php。 正如亞當剛提到的那樣,由於浮點精度,您的值實際上並不等於。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.