当前位置: 代码迷 >> PHP >> 关于printf格式化输出有关问题
  详细解决方案

关于printf格式化输出有关问题

热度:34   发布时间:2016-04-28 17:32:49.0
关于printf格式化输出问题
$a = 123.666;   
printf("%.2f", $a);
$b = 10.85;
print("<br>");
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 扩展
  相关解决方案