在PHP中将数字四舍五入到最接近的千位数
我之前曾讨论过用PHP舍入数字,但是如果您想将数字舍入到最接近的千位怎么办?
round()通过使用负数作为第二个参数,可以使用PHP中的本机函数来执行此操作。该round()函数具有两个参数,第一个是要四舍五入的数字,第二个是将数字四舍五入到的位数,也称为精度。默认值round()是将数字四舍五入到最接近的整数,通过使用正数作为第二个参数,您可以设置将小数位数舍入到的小数位数。给出负数作为第二个参数将使您可以将数字四舍五入到最接近的整数。例如,要将数字四舍五入到最接近的千位,可以将-3设置为精度,这会将数字12345更改为12000。
这是一个完整的示例:
$num = 123456789; echo round($num,0); //整数-打印123456789 echo round($num,-1); //十张-版画123456790 echo round($num,-2); //百张-印刷123456800 echo round($num,-3); //千-版画123457000 echo round($num,-4); //万-版画123460000 echo round($num,-5); //千百-版画123500000 echo round($num,-6); //百万-版画123000000 echo round($num,-7); //千万-版画120,000,000 echo round($num,-8); //亿-版画1亿 echo round($num,-9); //十亿-打印0
请注意,如果将精度设置为大于当前的实际数字,则您将获得下一个最高数字或零。例如,将数字四舍五入时,如果精度为-1,则结果为20,因为这是最接近的十位数。但是,如果使用-2,则结果为0,因为这是最接近的整数。
如果要舍入许多不同大小的值,这可能会导致错误,因此,一个巧妙的小技巧是使用该strlen()函数找出一个数字中有多少个字符,然后舍入到最接近的最大数字。您可以将字符数减去1使其小于字符串的长度,或者将一些数字四舍五入为零。然后,将该值乘以-1即可将其取反。
$num = 151; $round = (strlen($num)-1)*-1; echo round($num,$round); //版画200