【问题标题】:PHP number formatPHP数字格式
【发布时间】:2011-09-12 14:45:12
【问题描述】:

我有这个字符串:

000000000000100

并需要将其转换为:

1,00

所以,规则是:

  1. 将数字除以 100 并使用逗号作为小数分隔符
  2. 去除前导零
  3. 保留两位小数

【问题讨论】:

  • 你能澄清你的问题吗?小数点分隔符前只需要一个数字吗?如果存在,您是否需要超过 2 位小数?例如。 000000000001200 应该变成 1,2001,20 还是 12,00
  • 我只需要逗号后的 2 个数字!000000000001200 -> 12,00
  • 我们需要知道转换的规则应该是什么。一个例子是不够的。看起来是这样的:(a)除以 100; (b) 去除前导零; (c) 使用逗号 (,) 作为小数点。我说的对吗?

标签: php number-formatting


【解决方案1】:

来自PHP Manual page on number_format

string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )

如果您希望像123456 这样的数字被格式化为1234,45,请使用:

echo number_format($number / 100, 2, ",", "");

如果您需要一个点作为千位分隔符 (1.234,56):

echo number_format($number / 100, 2, ",", ".");

将字符串转换为数字时,PHP 会自动删除零。

【讨论】:

  • 这让我很困惑,因为我在想“但是", "(逗号空格)出现在最终结果中的位置”。现在我看到逗号分隔值,一个在引号内。 :D
【解决方案2】:
string number_format ( float $number , 
                       int $decimals = 0 ,
                       string $dec_point = '.' ,
                       string $thousands_sep = ',' )

手册:http://php.net/manual/en/function.number-format.php

// divide by 100 to shift ones place.
echo number_format((int)'000000000000100' / 100,2,',','');

【讨论】:

  • err, divide 是我的意思。
  • 布拉德,你也应该写出结果,这样对于像我这样的菜鸟来说,这是一个更清晰的例子。我假设它是 0000000000001,00。
猜你喜欢
  • 1970-01-01
  • 2016-10-29
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多