我有一个关联数组,其值为浮点数,它们应该是概率.因此,我总结它们并要求结果实际上是1.
$total = array_sum($array);
echo '$total = '.$total."\n";
if ($total == 1) {
die("total is 1");
} else {
die("total is not 1");
}
这神秘地输出:
$total = 1
total is not 1
执行var_dump($total)会产生float(1),但是甚至$total ==(float)1都会返回false.
这是怎么回事?
解决方法:
PHP(和其他语言)中的浮点数不精确,因此(float)1实际上可能是1.00000000000000123113或.99999999999999823477
有关更多信息,请参阅答案PHP – Floating Number Precision
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。