从 PHP 中的小数中删除无用的零位

新手上路,请多包涵

我试图找到一种快速的方法来从这样的数值中删除 zero decimals

 echo cleanNumber('125.00');
// 125

echo cleanNumber('966.70');
// 966.7

echo cleanNumber(844.011);
// 844.011

是否存在一些优化的方法来做到这一点?

原文由 vitto 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 541
2 个回答

$num + 0 了。

 echo 125.00 + 0; // 125
echo '125.00' + 0; // 125
echo 966.70 + 0; // 966.7

在内部,这相当于使用 (float)$numfloatval($num) 强制转换为浮动,但我发现它更简单。

原文由 lafor 发布,翻译遵循 CC BY-SA 3.0 许可协议

有时,特别是在货币金额的情况下,您只想在它们为 2 时删除零,您不想打印 € 2.1 而不是 € 2.10

一个实现可以是:

 function formatAmount(string|float|int $value, int $decimals = 2): string
{
    if (floatval(intval($value)) === floatval($value)) {
        // The number is an integer. Remove all the decimals
        return (string)intval($value);
    }

    return number_format($value, $decimals);
}

预期输出示例:

 0.1000 => 0.10
20.000 => 20
1.25 => 1.25

原文由 the_nuts 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题