我想显示最多 6 位小数的数字。
像这样:
99.0000001 -> 99
99.000001 -> 99.000001
99.00001 -> 99.00001
99.0001 -> 99.0001
99.001 -> 99.001
99.01 -> 99.01
99.10 -> 99.10
99.00 -> 99
在 PHP 中执行此操作的优雅方法是什么?
使用round(),精度为6
<?php
echo round(99.0000001, 6).PHP_EOL;
echo round(99.000001, 6).PHP_EOL;
echo round(99.00001, 6).PHP_EOL;
echo round(99.0001, 6).PHP_EOL;
echo round(99.001, 6).PHP_EOL;
echo round(99.01, 6).PHP_EOL;
echo round(99.10, 6).PHP_EOL;
echo round(99.00, 6).PHP_EOL;
结果:
99
99.000001
99.00001
99.0001
99.001
99.01
99.1
99
你可以用这个。 删除小数点后第 6 位之后的加法位。
$z = 99.0000011;
$y = floor($z * 1000000) / 1000000;
然后计算小数点后剩余位数。
$str = "$y";
$dcount = strlen(substr(strrchr($str, "."), 1));
现在我们必须确定该值是否应该有小数,如果是,则需要有 2 位或更多小数。
$a = 0;
If ($dcount == 1) {$a = $dcount+1;}
else {$a = $dcount;}
$x = number_format((float)$y, $a, '.', '');
$x 将是您正在寻找的所需结果。
// Array of values to divide
$numerators = [1, 1, 1];
$denominators = [2, 3, 6];
// Loop through and calculate the result
foreach ($numerators as $key => $numerator) {
$denominator = $denominators[$key];
$result = $numerator / $denominator;
// Print the result with 6 decimal places
printf("%0.6f\n", $result);
}
Expected Output:
0.500000
0.333333
0.166667
您可以使用
"%0.6f\n
来实现这一点