【发布时间】:2014-04-10 20:41:11
【问题描述】:
我有一个奇怪的问题,希望你能帮助我。
我在开头有两个值:
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 显示为不同。
【问题讨论】:
-
Read some of this until you get the gist of what they are saying。浮点精度比最初出现的要复杂。 This answer 也可能提供一些见解。
-
@Adam:他们都应该是
49.700000000000003 -
我没想到。感谢帮助。我已经四舍五入了,现在一切都是正确的。