PHP高级货币格式

PHP高级货币格式,php,formatting,currency,Php,Formatting,Currency,我想知道PHP中是否有一种简单的方法可以为以下任务正确设置货币格式: 如果值为:4.37,则输出将为$4.37 如果值为:4.00,则输出将为$4 如果值为:4.3或4.30,则输出将为$4.30 如果值为0.37,则输出将为37 我相信这很复杂(我是PHP初学者),但如果有人有任何建议,我将不胜感激。function format\u currency($val){ function format_currency($val) { if ($val < 1) return int

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

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

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

如果值为:
4.3
4.30
,则输出将为
$4.30

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

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

function format\u currency($val){
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);
如果($val<1)返回整数($val*100)),”; if(fmod($val,1.0)==0)返回“$”.intval($val); 返回“$”.intval($val)。”.intval(四舍五入((fmod($val,1))*100)); } //这样说吧 $val=1.2; 回显“您的总数:”。格式单位:货币($val);

虽然这个函数可以工作,但它通常是一个。

我知道这可能有点过头了,但看看Zend_Currency
,它会处理许多不同类型的货币,而且使用起来也很简单。请注意,您不必使用整个框架,只需使用currency类及其所需的文件


嗨,phihag,你的函数看起来可以工作,但我尝试过使用代码,但屏幕上没有显示任何内容。我试过这样做:@TronCraze你必须实际调用它。添加echo格式_货币($val)。我更新了答案。使用内置的php函数
setlocale(LC_MONETARY,'en_US'),可以简化最后一行;money_格式('$%!n',$val)
执行完全相同的工作。