PHP货币格式化尾随零

时间:2011-02-14 18:42:26

标签: php formatting currency

是否可以使用PHP格式货币值,例如:200美元将输出为:$ 200(不含小数)但是如果是200.50美元,它将正确输出$ 200.50而不是$ 200.5?

谢谢! :)

5 个答案:

答案 0 :(得分:5)

$num_decimals = (intval($amt) == $amt) ? 0 :2;
print ("$".number_format($amt,$num_decimals);

答案 1 :(得分:2)

如果您不介意自己处理货币,则可以简单地在数字上使用以下内容,以获得正确的输出。

该解决方案将始终输出尾随零(xx.x0或xx.00,具体取决于提供的数字)

$number = 1234
sprintf("%0.2f",$number)
// 1234.00

答案 2 :(得分:1)

相应地处理这种情况的自定义函数如何:

function my_number_format($number) {
    if(strpos($number, '.')) {
        return number_format($number, 2);
    } else {
        return $number;
    }
}

答案 3 :(得分:-1)

您可以使用number_format执行此操作。

示例:

$Amount = 200.00;
echo "$" . number_format($Amount); //$200

答案 4 :(得分:-1)

有两种方法。可能最普遍支持和推荐的方法是sprintf。

sprintf("%01.2f", "200.5"); //200.50
sprintf("%01.2f", "10"); //10.00

number_format也很好,并且有各种各样的选项,如果要求,它会添加数千个分隔符。

还有money_format功能,但在Windows服务器上不支持。