当前位置:Gxlcms > PHP教程 > 关于sprintf截取小数问题

关于sprintf截取小数问题

时间:2021-07-01 10:21:17 帮助过:16人阅读

问题:保留1位小数,不四舍五入,为整数时补0

很多人都说用sprintf('%.1f',$str);,但是取出来的结果还是有问题,
最后用这种方法解决:echo sprintf('%.1f', floor($str));


不是说不四舍五入的吗?为什么按四舍五入,5却不入,6才入;
而其他函数number_format($str)都是在5就入了,这是为什么?

回复内容:

问题:保留1位小数,不四舍五入,为整数时补0

很多人都说用sprintf('%.1f',$str);,但是取出来的结果还是有问题,
最后用这种方法解决:echo sprintf('%.1f', floor($str));


不是说不四舍五入的吗?为什么按四舍五入,5却不入,6才入;
而其他函数number_format($str)都是在5就入了,这是为什么?

自己实测了一下,目测是浮点数表示的精度问题

参考

linux浮点数四舍五入还是五舍六入(浮点数的表示形式有关)

人气教程排行