PHP高级货币格式

时间:2011-02-19 19:48:46

标签: php formatting currency

我想知道PHP中是否有一种简单的方法可以正确格式化货币以执行以下任务:

如果值为:4.37,则输出将为$4.37

如果值为:4.00,则输出将为$4

如果值为:4.34.30,则输出为$4.30

如果值为0.37,则输出为37¢

我确信这样做很复杂(我是PHP的初学者),但如果有人有任何建议,我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

function format_currency($val) {
    if ($val < 1) return intval(round($val * 100)) . '¢';
    if (fmod($val, 1.0) == 0) return '$' . intval($val);
    return '$' . intval($val) . '.' . intval(round((fmod($val,1))*100));
}

// Call it like this
$val = 1.2;
echo 'Your total: ' . format_currency($val);

虽然此功能可行,但通常为bad idea to encode dollar amounts in a float

答案 1 :(得分:0)

我知道这可能有点矫枉过正,但看看Zend_Currency,它会为此处理许多不同类型的货币,它也很简单易用。请注意,您不必使用整个框架,只需使用货币类及其所需的文件

http://framework.zend.com/manual/en/zend.currency.html