php - number_format() php 删除尾随零

标签 php floating-point numbers decimal number-formatting

如果数字不是 float /小数,number_format() 是否有办法省略小数位?

例如,我想要以下输入/输出组合:

50.8 => 50.8
50.23 => 50.23
50.0 => 50
50.00 => 50
50 => 50

有没有办法只用一个标准的 number_format() 来做到这一点?

最佳答案

您可以将0 添加到格式化字符串中。它将删除尾随零。

echo number_format(3.0, 1, ".", "") + 0; // 3

更好的解决方案:上述解决方案不适用于特定的语言环境。所以在这种情况下,您只需将数字类型转换为 float 数据类型。注意:在将类型转换为 float 后,您可能会失去精度,数字越大,截断数字的机会就越大。

echo (float) 3.0; // 3

终极解决方案:唯一安全的方法是使用正则表达式:

echo preg_replace("/\.?0+$/", "", 3.0); // 3
echo preg_replace("/\d+\.?\d*(\.?0+)/", "", 3.0); // 3

Snippet 1 DEMO

Snippet 2 DEMO

Snippet 3 DEMO

关于php - number_format() php 删除尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49890550/

相关文章:

javascript - 选择并显示区域 jquery 日期选择器,但保存为转换后的公历日期

php - foreach 循环中 &$key 和 &$value 引用的最有效实践

C++ NaN 字节表示在赋值期间发生变化

c - 有浮点无穷小吗?

java - 从数组中打印素数

php - 从 mysql 创建 excel 并在 php 中将其作为附件电子邮件发送

php - 将变量放入 PDO 语句中

简单算术的 C++ 和 Octave 结果不同

java - 什么java语句或函数来格式化尼日利亚奈拉货币的货币

python - 为 Python 安装 Bigfloat