api 中的简单数字格式

Simple number format from api

我正在从 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)/', ',', $number); 
       if ($replaced != $number) { 
          $number = $replaced; 
       } else { 
          break; 
       } 
    } 
    return $number; 
} 

然后 formatMoney($totala)($totala 是 api 的金额),我在页面上看到

1,597,188,700,000,000

感谢任何帮助

货币格式是从右到左的 3 位数字组。

问题是您的电话号码应该是多少: 1597188700000000 还是 15971887?

您需要确定单位是什么,然后将其更改为所需的格式。如果你想要 1597188700000000 中的“15, 971, 887”。 您需要从 api 获取每个数字并执行:1597188700000000/100000000 然后格式化它。

我觉得这个问题很无意义,你还没想好你在做什么。

以下将格式化您的数字,用 , 分隔千位并从数字的右侧部分去除所有零。

$formattedNumber = number_format(rtrim($number, '0'), 0, ',', '.');