我将两个数字字符串$ a和$ b加在一起,然后将结果与另一个数字字符串$ c进行比较.所有三个数字都存储为字符串,并在比较步骤中由PHP转换为浮点数.
出于某种原因,测试$ a + $ b == $ c不会评估为真,即使它应该.
您可以使用此脚本重新创建问题:
<?php
$a = "-111.11";
$b = "-22.22";
$c = "-133.33";
echo '$a is '.$a."\n";
echo '$b is '.$b."\n";
echo '$c is '.$c."\n";
echo '$a + $b is '.($a+$b). "\n";
if ($a + $b == $c) {
echo 'a + b equals c'."\n";
} else {
echo 'a + b does not equal c'."\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我稍微更改这些值,以便$ a = -111.11,$ b = -22.23和$ c = -133.34,它会按预期工作.
我错过了一些明显的东西,或者这是PHP的错误?