我想将0.45格式化为45%。
我知道我可以做FLOOR($x*100).'%'
这样的事情,但想知道是否有更好的方法(更好的定义为更标准,更不一定更快)。
一个想法是http://php.net/manual/en/class.numberformatter.php。这是一个更好的方法吗?有没有人用它,你能展示一个例子吗?感谢
答案 0 :(得分:43)
最有可能的是,您需要round
而不是floor
。但除此之外,这将是最“标准”的方式。或者,您可以使用sprintf
,例如:
sprintf("%.2f%%", $x * 100)
将打印$ x的百分比,精确度为两位小数,之后为百分号。
通过NumberFormatter
执行此操作的最短方式是:
$formatter = new NumberFormatter('en_US', NumberFormatter::PERCENT);
print $formatter->format(.45);
如果你的应用程序支持各种语言环境,那么最好这样做,但是你只是添加另一行代码而没有太大的好处。
答案 1 :(得分:3)
您也可以使用功能。
function percent($number){
return $number * 100 . '%';
}
然后使用以下内容显示结果。
percent($lab_fee)