我已经使用number_format()函数进行了千位分隔,但是该函数获得了特定的小数位数。 但是我需要小数位数应该是传递给函数的数字
应该是这样。
数字输出
1234 1,234
1234.9 1,2394.9
1234.94 1,233.94
答案 0 :(得分:2)
您可以先使用number_format(),然后在需要时进行修饰,如下所示:
function formatter($input, $maxDecimals)
{
$number = number_format($input, $maxDecimals);
if ($maxDecimals > 0) {
list($whole, $fraction) = explode(".", $number);
$number = $whole . rtrim("." . $fraction, ".0");
}
return $number;
}
echo formatter(0.0, 6).'<br>';
echo formatter(100.0, 6).'<br>';
echo formatter(100.01, 6).'<br>';
echo formatter(1200.9, 6).'<br>';
echo formatter(1200, 6).'<br>';
echo formatter(1200.9, 6).'<br>';
echo formatter(1234, 6).'<br>';
echo formatter(1234.9, 6).'<br>';
echo formatter(1234.94, 6).'<br>';
修剪将删除所有零,并在末尾删除点。上面的代码将返回:
0
100
100.01
1,200.9
1,200
1,200.9
1,234
1,234.9
1,234.94