使用PHP在十进制前后删除零

时间:2019-07-14 09:51:25

标签: php

下面的代码工作正常,但在第二个变量名称为fixed_2的情况下,为什么小数点后显示3位数字?我尝试了许多没有希望的方法。

$text = "000892021.2408000";

$fixed_1 = preg_replace('/000/','',$text);
$fixed_2 = preg_replace('/.000/','',$text);
$fixed_3 = preg_replace('/000./','',$text);

var_dump($fixed_1);
var_dump($fixed_2);
var_dump($fixed_3);

输出

 string(11) "892021.2408" string(13) "000892021.240" string(13) "92021.2408000" 

有什么需要帮助的解释吗?

2 个答案:

答案 0 :(得分:1)

您可以使用嵌套的ltrim()rtrim()

router: {
  middleware: ['auth']
}

答案 1 :(得分:0)

您用于$ fixed_2的正则表达式为“。000” 。这意味着删除所有以任何字符开头,后跟3个零的字符串。 “。”表示任何字符,因此它将匹配“ 8000” 并将其删除。这就是为什么您在$ fixed_2

中得到“ 000892021.240” 的输出的原因