很多人都说用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浮点数四舍五入还是五舍六入(浮点数的表示形式有关)
![php中文网最新课程二维码](/static/images/article_wechat2021.jpg?1111)
声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论