PHP格式编号,不使用number_format函数

时间:2019-05-22 17:31:12

标签: php

如标题所述:使用该数字1000000.125685,如何将其格式化为1,000,000.125而不使用number_function,因为该函数舍入了小数位?

number_format("1000000.125685",3) //returns 1,000,000.126

如何在不使用number_format的情况下给我想要的数字“ Money Format”?

1 个答案:

答案 0 :(得分:2)

如果在格式化之前在数字上使用floor(),将得到您想要的。问题是floor()舍入小数而不是“四舍五入到小数位数”。因此,这段代码执行的往返行程为* 1000,然后为/ 1000 ...

echo number_format(floor(1000000.125685*1000)/1000,3);

给予...

1,000,000.125

将其包装为一个以数字和小数位为参数的函数...

function number_format2( float $n, int $dp ): string {
    $multi = pow(10, $dp);
    return number_format(floor($n*$multi)/$multi,$dp);
}
echo number_format2(1000000.125685,4);