我有一个执行简单数学运算并返回浮点值的方法。我将此值用作wp_send_json()
函数的参数。值以我不理解的方式转换。
$x = $calculator->getValue(); // Returns 3.02
$y = 3.02;
gettype($x); // Returns double
gettype($y); // Returns bouble
wp_send_json_success(%x); // prints {"success":false,"data":3.0199999999999996}
wp_send_json_success($y); // prints {"success":false,"data":3.02}
我一点也不明白。 $x
和$y
的值在类型和值上都完全相同。那么,wp_send_json_success
产生的输出为何不同?
更新:
现在我更加困惑
$x === $y; // returns false
$x == $y; // returns false too!
怎么可能?当我做var_dump
时,可以看到值是相同的。
答案 0 :(得分:0)
与wp_send_json()
无关。在我的代码中,3.02
方法返回的$calculator->getValue()
值是10 - 6.98
公式的结果。它返回3.0199999999999996
,但是当我var_dump
时,屏幕上的结果将四舍五入为3.02
。这就是$x == $y
返回false的原因。