在PHP中是否有number_format
替代方法允许我选择千位和小数分隔符,同时保留小数位数?例如。像这样的东西:
number_format_alternative( '1234.617', ',', '.' );
>1 234,617
但
number_format_alternative( '120.0', ',', '.' );
>120.0
我意识到我可以通过使用一个可笑的高数字小数,并从右边修剪所有零来实现几乎相同的事情,尽管第二个例子看起来像:
number_format_alternative( 120.0, ',', '.' );
>120
编辑:这就是我最终要做的事情:
function numberOfDecimals( $number ) {
return strlen(strstr(rtrim(sprintf('%.10F', $number), '0'), '.'))-1;
}
答案 0 :(得分:1)
由于您要将数字作为字符串输入到函数中,因此您可以使用正则表达式查看小数点后面的位数,由'表示。'在这种情况下,然后执行number_format
并将$decimals
参数设置为您刚刚计算的数字。
一个可行的正则表达式是\.\d+
,然后减去长度以减去1以找到小数位数,你可以看看我认为性能会更差的背后。可能需要进行一些测试,我相信会有其他正则表达式可以使用。