记一次浮点数比较

比较  0.2+0.7  与      0.9   
0.89999999999999991118215802998747676610946655273437500
0.90000000000000002220446049250313080847263336181640625
0.89999999999999991118215802998747676610946655273437500
0.90000000000000002220446049250313080847263336181640625

echo "<br>";
printf ( "%01.53f" ,  (0.2+0.7) );
echo "<br>";
printf ( "%01.53f" ,  0.9 );
echo "<br>";
var_dump(round(0.2+0.7,15)==round(0.9,15));//结果为true,精确到小数点后15位,则看第16位,是9,所以进1,所以和0.8相同(上面浮点数中的蓝色部分)
var_dump(round(0.2+0.7,16)==round(0.9,16));//结果为false精确到小数点后16位,则看第17位,是1,所以不进1,所以不等于0.8(上面浮点数中的黄色部分)
原文地址:https://www.cnblogs.com/ch459742906/p/7421091.html