我有以下价格。
- 14,500,000
- 1,800,000
这些价格如何在PHP中显示为数百万和数千?
我想有一个用户定义的函数将这些值显示为数百万和数千格式,因为这些价格将是动态的。
更新
我想将上述值显示为:
- 14,500,000 将是 1400 万和 500 thounsands
- 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);