10.00 => 10,

12.88 => 12.88

1.80 => 1.8

使用 rtrim 和 number_format

这种方法先格式化数字,然后去除后面的 .00

function formatNumber($number) {
// 使用 number_format 将数字格式化为带有小数点的字符串
$formatted = number_format($number, 2, ‘.’, ”);

// 使用 rtrim 去除末尾的 .00
return rtrim($formatted, ‘0’) . (substr($formatted, -1) === ‘.’ ? ” : ”);
}

// 示例
echo formatNumber(10.00); // 输出: 10
echo “\n”;
echo formatNumber(12.19); // 输出: 12.19

使用类型转换

你也可以简单地将浮点数转换为字符串,PHP 会自动去掉多余的零:

function formatNumber($number) {
// 将数字转换为字符串
return (string)$number + 0; // 通过加0,将其转换为浮点数
}

// 示例
echo formatNumber(10.00); // 输出: 10
echo “\n”;
echo formatNumber(12.19); // 输出: 12.19

在 PHP 中,将浮点数转换为字符串时,确实可能会出现精度问题,导致你看到诸如 .99991.0000000000001 这样的结果。这是因为浮点数在计算机内部使用二进制表示,某些十进制小数无法精确表示为二进制,从而可能引发精度问题。

为了避免这种精度问题,使用number_format() 函数可以格式化数字为字符串,指定小数位数,并避免浮点数精度问题

使用 sprintf

function formatNumber($number) {
return sprintf(‘%.2f’, $number) + 0; // 将其格式化为带两位小数的字符串
}

// 示例
echo formatNumber(10.00); // 输出: 10
echo “\n”;
echo formatNumber(12.19); // 输出: 12.19

作者 admin

百度广告效果展示