我试图找到一种快速的方法来从这样的数值中删除 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 许可协议
有时,特别是在货币金额的情况下,您只想在它们为 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 许可协议
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答677 阅读✓ 已解决
2 回答626 阅读✓ 已解决
$num + 0
了。在内部,这相当于使用
(float)$num
或floatval($num)
强制转换为浮动,但我发现它更简单。