关于printf格式化输出问题
$a = 123.666;
printf(%.2f, $a);
$b = 10.85;
print(
);
printf(%.1f,$b);
为什么结果是
123.67
10.8
前一个四舍五入了,后一个没有?
------解决思路----------------------
printf(%.1f %.16f, 10.85, 10.85); //10.8 10.8499999999999996
浮点数 10.85 在机器中实际保存为 10.8499999999999996
所以取一位小数时是 10.8
其实这是不必纠结的事情,在计算机基础课程中你就已经学习过浮点数的表示和精度
如果你需要高精度运算,请使用 php 提供的 bc、gml 扩展