经常在小数位和小数点右边修剪零

时间:2013-10-10 12:08:29

标签: php regex

我一直用PHP处理长号码。如下例所示。

12.020000
12.000000

为了摆脱尾随零和小数点,我在函数中使用了以下内容。

return rtrim(rtrim($str, "0"),".");

所以上面的结果就像。

12.02
12

当输入1000时,它变得有点短视,它会变成1

有人可以帮我修改代码,只删除小数点后的尾随零点吗?

如果代码移除了小数位,则可以加分,但我总是可以将其输入rtim($str,".")

编辑:要清楚,我只在显示到屏幕时剥离小数位和零。同时施放浮动也不是一个选项,因为我也处理像0.00000001这样的数字,它们就像1.0e-9那样。

2 个答案:

答案 0 :(得分:5)

为什么使用字符串来保存数字?把它扔到浮动状态,它将解决你的问题。

$string = '12.020000';
$number = (float) $string; // will be 12.02

然后,如果你想将它用作字符串(但为什么?)

$string = (string) $number;

答案 1 :(得分:3)

令我困惑的是你的问题是,如果没有故意用number_format添加它们,额外的零将不包含在数字变量中。 (这可能就是为什么有人下来投票的原因。)

通常,您不希望对包含数字的变量使用字符串函数(用于文本)。如果要舍入数字,请使用圆形等函数。

http://php.net/manual/en/function.round.php

还有number_format,它可以通过添加零填充来格式化数字:(它不会实现圆形,只是修剪多余的数字)。

http://php.net/manual/en/function.number-format.php

由于您的零出现,您可能只需要将变量乘以1,这实际上将字符串转换为数字。

祝你好运!