浮点数并不精确
10进制 ------- 2进制
0.5 ------------- 0.1
0.8 ------------- 0.1100…
if ( (0.3-0.2) == 0.1 ){
echo "相等";
}else{
echo "不相等"; // 打印结果 不相等
}
if ( (0.8-0.3) == 0.5 ){
echo "相等"; // 打印结果 相等
}else{
echo "不相等";
}
出现以上两种不同结果的原因是,浮点数不精确,某些小数在10进制下,是有限的,转成2进制是无限循环
因此损失一些精度,导致浮点数计算和数学上结果不一致
银行一般存整数,精确到分,来解决此问题