У меня есть метод, который делает простую математику и возвращает значение с плавающей точкой. Я использую это значение в качестве аргумента для функции 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
, я вижу, что значения одинаковы.