防止number_format从舍入数字 - 添加逗号并保持小数点 - PHP

时间:2016-06-29 16:30:30

标签: php decimal number-formatting

数字格式添加我想要的逗号但删除小数。

echo number_format("1000000.25");

返回1,000,000

我希望它返回1,000,000.25

我需要逗号和小数,没有任何数字舍入。我的所有值都是小数。它们的长度各不相同。

我是否必须使用数字格式以外的其他内容?

3 个答案:

答案 0 :(得分:9)

如果的含义不同与小数部分有关,请查看此代码:

function getLen($var){
    $tmp = explode('.', $var);
    if(count($tmp)>1){
        return strlen($tmp[1]);
    }
}
$var = '1000000.255555'; // '1000000.25'; // '1000000';
echo number_format($var, getLen($var));

<小时/> 一些测试

  • 1000000.255555的输出:
  

1,000,000.255555

1000000.25的输出:

  

1,000,000.25

1000000的输出:

  

1,000,000

它计算.之后有多少个字符,并将其用作number_format函数中的参数;

否则只需使用常数而不是函数调用。

<小时/> 还有一些参考......

来自manual -> number_format()

string number_format ( float $number [, int $decimals = 0 ] )

您可以在说明中看到

  

数字
  正在格式化的数字。

     

小数
  设置小数点数。

还有一点:

  

[...]如果给出两个参数,则数字将以小数格式化   小数点前面有一个点(“。”),每个小数点后面都有一个逗号(“,”)   成千上万的人。

答案 1 :(得分:7)

$number = '1000000.25';
echo number_format($number, strlen(substr(strrchr($number, "."), 1)));

<强>解释: Number Format采用第二个参数,指定docs中指出的所需小数位数。 This堆栈溢出答案告诉您如何获取所提供字符串的小数位数

答案 2 :(得分:2)

number_format()的文档表示第二个参数用于指定decimal:

echo number_format('1000000.25', 2);

参考:http://php.net/manual/en/function.number-format.php