如何将价格显示为百万和数千格式


How to show prices as million and thousands format?

我有以下价格。

  • 14,500,000
  • 1,800,000

这些价格如何在PHP中显示为数百万和数千?

我想有一个用户定义的函数将这些值显示为数百万和数千格式,因为这些价格将是动态的。

更新

我想将上述值显示为:

  1. 14,500,000 将是 1400 万和 500 thounsands
  2. 1,800,000将是100万和800个thounsands。

所以任何人都可以告诉我它是如何做到的?

谢谢。

使用number_format()函数

echo number_format("14500000", 0, '', ',');

输出

14,500,000


如果要以千/百万/十亿表示价格

$number = "14500000";
if ($number < 1000000) {
    // Anything less than a million
    $format = number_format($number);
} else if ($number < 1000000000) {
    // Anything less than a billion
    $format = number_format($number / 1000000, 2) . 'M';
} else {
    // At least a billion
    $format = number_format($number / 1000000000, 2) . 'B';
}
echo $format;

输出

14.50M

使用number_format函数

number_format($number, 2, '.', ',');

完整示例:

$number = '14,500,400';
$tab = explode(",",$number);
$arrayNumber = array_reverse($tab);
if(intval($arrayNumber[0])!=0){
    $str[] = $arrayNumber[0] . ' hundreds';
}
if(intval($arrayNumber[1])!=0){
    $str[] = $arrayNumber[1] . ' thousands';
}
if(intval($arrayNumber[2])!=0){
    $str[] = $arrayNumber[2] . ' millions';
}
$strArr = array_reverse($str);
echo join(' ', $strArr);

工作代码

试试这个

$price = '14,500,000';
echo $price = (int)str_replace(",","",$price);
echo '<br>';
$thousands = $price % 1000000;
$millions = ($price - $thousands)/1000000;
$thousands = $thousands / 1000;
echo $thousands = $thousands . " Thousands";
echo $millions = $millions . " Millions";
您可以使用

number_format 函数:http://php.net/manual/en/function.number-format.php

如果你

谷歌搜索php number thousand separator第一个结果将指向描述number_format的PHP文档

如果只给出一个参数,则数字的格式将不带小数,但在每组数千个之间使用逗号 (",")。

示例代码:

$formatted_number = number_format(14500000);

但是,如果要显示14 million,则可以编写一个函数来计算数字的对数底数 10(为您提供位数),然后有一个带有单位(千、百万等)的查找表。将数字除以最接近的 1000 的倍数。这应该会给你预期的重用。

如果你的数字总是在百万范围内,那就是简单的除法和取模:

define('MILLION', 1000000);
$number = 14500000;
$millions = floor($number/MILLION);
$thousands = floor(($number % MILLION) / 1000);
$formatted = sprintf('%d millions and %d thousands', $millions, $thousands);