19

我想将 0.45 格式化为 45%。

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

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

4

2 回答 2

58

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

sprintf("%.2f%%", $x * 100)这将打印 $x 的百分比,精度为小数点后两位,然后是百分号。

执行此操作的最短方法NumberFormatter是:

$formatter = new NumberFormatter('en_US', NumberFormatter::PERCENT);
print $formatter->format(.45);

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

于 2013-01-25T16:01:33.717 回答
6

你也可以使用一个函数。

function percent($number){
    return $number * 100 . '%';
}

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

percent($lab_fee)
于 2013-11-06T19:32:56.800 回答