使用PHP格式化百分比

use*_*531 13 php

我想将0.45格式化为45%.

我知道我可以做类似的事情FLOOR($x*100).'%',但想知道是否有更好的方法(更好的定义为更标准,而不一定更快).

一个想法是http://php.net/manual/en/class.numberformatter.php.这是一个更好的方法吗?有没有人用它,你能展示一个例子吗?谢谢

Col*_*n M 45

最有可能的是,你想要round而不是floor.但除此之外,这将是最"标准"的方式.或者你可以使用sprintf如下:

sprintf("%.2f%%", $x * 100) 这将打印$ x的百分比,两个小数点的精度,以及之后的百分号.

最简单的方法NumberFormatter是:

$formatter = new NumberFormatter('en_US', NumberFormatter::PERCENT);
print $formatter->format(.45);
Run Code Online (Sandbox Code Playgroud)

如果您的应用程序支持各种语言环境,那么最好这样做,但是否则您只是添加另一行代码而没有太大的好处.

  • 是的,圆形而不是地板。您是否尝试过使用数字格式化程序? (3认同)
  • @ToddBenrud%.2f是一种特殊的格式说明符."%"表示格式说明符的开头,"f"表示输出应该是浮点数,".2"表示它应该具有两个小数点的精度.因为"%"指定格式的开头,所以如果要实际打印百分号,则必须使用两个百分号.因此结束%%.其他详细信息:http://php.net/manual/en/function.sprintf.php (3认同)
  • 您可能需要通过取消注释此行来启用 php.ini 中的 NumberFormatter:extension=ext/php_intl.dll 请参阅[此](/sf/ask/2138792421/发现)SO问题以获取更多信息。 (2认同)

Mr.*_*. B 6

您还可以使用函数。

function percent($number){
    return $number * 100 . '%';
}
Run Code Online (Sandbox Code Playgroud)

然后使用以下内容显示结果。

percent($lab_fee)
Run Code Online (Sandbox Code Playgroud)