我从api中抽出一个号码。我直接调用该值时的输出是
1597188700000000
页面上的所需输出是
15, 971, 887
我正在尝试的是
function formatMoney($number, $fractional=false) {
if ($fractional) {
$number = sprintf('%.2f', $number);
}
while (true) {
$replaced = preg_replace('/(-?\d+)(\d\d\d)/', '$1,$2', $number);
if ($replaced != $number) {
$number = $replaced;
} else {
break;
}
}
return $number;
}
然后formatMoney($totala)
($ totala是来自api的金额),我在页面上看到
1,597,188,700,000,000
感谢任何帮助
答案 0 :(得分:1)
Money格式是从3位数组中从右到左。
问题是你的号码应该是多少: 1597188700000000或15971887?
您需要确定单位是什么,然后将其更改为所需的格式。如果你想从1597188700000000获得“15,971,887”。 您需要从api获取每个数字并执行:1597188700000000/100000000然后格式化。
我认为这个问题毫无意义,你没有想到你在做什么。
答案 1 :(得分:1)
以下内容将格式化您的号码,用,
分隔数千,并从号码的右侧部分删除所有零。
$formattedNumber = number_format(rtrim($number, '0'), 0, ',', '.');