Mos*_*ebi 9 php precision rounding
我从数据库中得到一个数字,这个数字可能是float
或者int
.
我需要设置数字的小数精度3
,这使得数字不长于(关于小数)5.020
或1518845.756
.
使用PHP
round($number, $precision)
Run Code Online (Sandbox Code Playgroud)
我看到一个问题:
它使数字四舍五入.我需要一个函数来只缩短小数,而不改变它们round( )
似乎不遵循的值.
Ama*_*ali 21
你可以number_format()
用来实现这个目标:
echo number_format((float) $number, $precision, '.', '');
Run Code Online (Sandbox Code Playgroud)
这将转换1518845.756789
为1518845.757
.
但是,如果你只是想短暂切断小数的个数为3,而不是圆形,那么你就可以做到以下几点:
$number = intval($number * ($p = pow(10, $precision))) / $p;
Run Code Online (Sandbox Code Playgroud)
起初看起来可能有些令人生畏,但这个概念非常简单.你有一个数字,你将它乘以10 3(它变成1518845756.789
),将它转换成一个整数,这样就可以删除3个小数后的所有内容(变为1518845756
),然后将结果除以10 3(变为1518845.756
).
geo*_*j11 12
它的声音floor
与小数点一样.所以你可以尝试类似的东西
floor($number*1000)/1000
Run Code Online (Sandbox Code Playgroud)