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

时间:2013-10-09 06:07:45

标签: php

我有以下价格。

  • 14500000
  • 1800000

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

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

更新

我想将上述值显示为:

  1. 14,500,000将是1400万和500个thounsands
  2. 1,800,000将是100万和800个thounsands。
  3. 所以任何人都可以告诉我它是如何做到的?

    感谢。

5 个答案:

答案 0 :(得分:10)

使用number_format()功能

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

<强>输出

14,500,000


OR

如果您想用Kilo / Million / Billion表示价格

$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

答案 1 :(得分:4)

使用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);

?>

<强> WORKING CODE

答案 2 :(得分:1)

试试这个

$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";

答案 3 :(得分:0)

您可以使用http://php.net/manual/en/function.number-format.php

中所述的number_format功能

答案 4 :(得分:0)

如果你谷歌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);