活到老学到老  

记录遇到问题的点点滴滴。

PHP浮点数比较大小

6年前发布  · 1448 次阅读

PHP 比较运算符用于比较两个值(数字或字符串)

 

==等于$x == $y如果 $x 等于 $y,则返回 true。
===全等(完全相同)$x === $y如果 $x 等于 $y,且它们类型相同,则返回 true。

 

 

<?php
$a = 0.58 * 100;
$b = 58;
var_dump($a);// 输出 float 58
var_dump($b);// 输出 int 58
var_dump($a == $b); // bool(false)
var_dump(intval($a)); // int 57

var_dump(floatval($b) == $a);// bool(false)
var_dump(floatval($b)); // float 58

var_dump(strval($b) == strval($a));  // bool(true)

?>

 

php显示$a = 58,实际值应该是57.99999999999999。
php在比较浮点数大小时,需要把浮点数转为字符串进行比较。