为什么我测试$a+$b == 0.8为true呢?

来源:2-3 常量及数据类型考察点

Won1028

2018-01-05

$a = 0.5;
$b = 0.3;

if ($a+$b === 0.8) {
    echo $a+$b;
}else{
    echo "完蛋";
}

写回答

1回答

Jason

2018-01-05

在一些浮点类型的数据进行二进制转换的时候,然后进行计算,是没有问题的,因为他们可以顺利转换成32位或者64位的二进制数据而没有任何损耗和误差,而0.1这样的浮点数在进行二进制转换时会造成数据的损耗和误差,导致计算误差

1
3
Won1028
非常感谢!
2018-01-19
共3条回复

360大牛带你横扫PHP职场 全面解读PHP面试

全面、系统剖析PHP面试,拿下心仪Offer

1817 学习 · 464 问题

查看课程