簡體   English   中英

比較兩個浮點值-不相同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM