【问题标题】:PHP money_format: Removing decimals based on valuePHP money_format:根据价值去除小数
【发布时间】:2017-03-21 09:14:54
【问题描述】:

我有一个希望以特定格式显示的值。

我希望价格为 895,25(如果有十进制值),或者 895,- 如果没有十进制值 (00)。

这是我的代码:

money_format('%!n', '895,00')

以上输出:

895,00

我尝试了以下但没有运气,它只是删除了值。

money_format('%!.0n', '895.25');

变成这样:

895

有什么想法吗?

【问题讨论】:

  • 你试过这个吗:str_ireplace(",00", ",-", money_format('%!n', '895,00'))
  • 我还没有尝试 str_replace。我有点希望我忽略了 money_format 方法中的某些内容

标签: php currency money-format


【解决方案1】:

您可以使精度自适应为:

function mfmt($val){
    $prec = 2;
    $suffix = "";
    if(round($val, 0) == $val){
        $prec = 0;
        $suffix = ",-";
    }
    return money_format("%!.${prec}n${suffix}", $val);
}

echo mfmt(825.25)."\n"; //825.25
echo mfmt(825)."\n"; //825,-

【讨论】:

    猜你喜欢
    • 2011-06-19
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2022-08-11
    相关资源
    最近更新 更多