我有一个奇怪的问题,希望你能帮助我。
一开始我有两个值:
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将它显示为不同的。
答案 0 :(得分:2)
您可以使用bccomp函数(bcmath扩展名)来比较浮点值:http://www.php.net/manual/en/function.bccomp.php。 由于Adam刚才提到的浮点精度,你的值实际上并不相等。