如何在 PHP 中去除尾随零

2022-08-30 08:18:41

任何人都可以给我一个解释(也许是一个例子)如何使用PHP从数字中去除尾随的零。

例如:

"Lat":"37.422005000000000000000000000000","Lon":"-122.84095000000000000000000000000"

将转入:

"Lat":"37.422005","Lon":"-122.84095"

我试图去掉零,使其更具可读性。我尝试使用,但这也替换了数字内的零。str_replace()


答案 1

忘记所有的rtrims和正则表达式,坐标是浮点数,应该被视为浮点数,只需在变量前面加上,将其从字符串转换为浮点数:(float)

$string = "37.422005000000000000000000000000";
echo (float)$string;

输出:

37.422005

您拥有的实际结果是浮点数,但由于HTTP协议而作为字符串传递给您,最好将它们转换回自然形式以进行计算等。

测试用例:http://codepad.org/TVb2Xyy3

注意:关于 PHP 中浮点精度的注释,请参阅:https://stackoverflow.com/a/3726761/353790


答案 2

尝试使用 rtrim

$number = rtrim($number, "0");

如果您有一个以 0 结尾的十进制数(例如 123.000),您可能还需要删除小数分隔符,该分隔符可能因使用的区域设置而异。要可靠地删除它,您可以执行以下操作:

$number = rtrim($number, "0");
$locale_info = localeconv();
$number = rtrim($number, $locale_info['decimal_point']);

这当然不是一个防弹解决方案,可能不是最好的解决方案。如果您有一个像12300.00这样的数字,它不会从整数部分中删除尾随的0,但您可以根据自己的特定需求进行调整。


推荐