在 PHP 中设置浮点数的精度
我从数据库中得到一个数字,这个数字可能是或。
我需要将数字的小数精度设置为 ,这使得数字不长于(关于小数)或 。float
int
3
5.020
1518845.756
使用 PHP
round($number, $precision)
我看到一个问题:
它对数字进行舍入。我需要一个函数来缩短小数,而不改变它们的值,这似乎不是跟随的。round( )
我从数据库中得到一个数字,这个数字可能是或。
我需要将数字的小数精度设置为 ,这使得数字不长于(关于小数)或 。float
int
3
5.020
1518845.756
使用 PHP
round($number, $precision)
我看到一个问题:
它对数字进行舍入。我需要一个函数来缩短小数,而不改变它们的值,这似乎不是跟随的。round( )
您可以使用 number_format()
来实现此目的:
echo number_format((float) $number, $precision, '.', '');
这将转换为 .1518845.756789
1518845.757
但是,如果您只想将小数位数缩短为3,而不是四舍五入,则可以执行以下操作:
$number = intval($number * ($p = pow(10, $precision))) / $p;
乍一看可能看起来很吓人,但这个概念真的很简单。你有一个数字,你把它乘以103(它变成),把它转换为一个整数,这样3个小数位之后的所有内容都被移除(变成),然后将结果除以103(变成)。1518845756.789
1518845756
1518845.756
它听起来像小数。所以你可以尝试类似的东西floor
floor($number*1000)/1000