最近工作中,要用到保留小数为的方法,我第一个想到的就是round函数,简单无痛,但是最后结果竟然有问题。
比如:1.08521211032258这样的小数,round处理可能会出一些意料之外的问题。
总之,对于精度较小的小数,round函数足以胜任,但是对于小数位特别多的小数,round会出现一些小问题,总之就是无法对小数正常的进行处理了。
在网上搜了很多种方法,使用number_format完成了,下面记录一下我搜集的集中方法,以后用到的时候也方便翻阅。
sprintf() 函数把格式化的字符串写写入一个变量中
echo sprintf("%.3f", 123456.123456); //123456.123
php集成的函数,如果精度一般,推荐用它
echo round(123456.123456,3); //123456.123
利用千位分组来格式化数字的函数,如果精度较大,可以尝试使用它
echo number_format(123456.123456, 3); //123456.123
大体就是这样了,关于number_format()函数的扩展阅读可以参照:
http://www.w3school.com.cn/php/func_string_number_format.asp