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
我没有想到任何事情。感谢帮助。我四舍五入的价值,现在一切都是正确的。 –