猿问

如何使用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" 

任何帮助请解释?


慕村9548890
浏览 138回答 2
2回答

HUX布斯

你可以使用嵌套的 ltrim() rtrim()    $res = ltrim(rtrim($text, '0'), '0');

一只名叫tom的猫

那么您用于 $fixed_2 的正则表达式是".000"。这意味着删除所有以任何字符开头后跟 3 个零的字符串。“。” 表示任何字符,因此它将匹配“8000”并将其删除。这就是为什么你在 $fixed_2 中得到“000892021.240”的输出
随时随地看视频慕课网APP
我要回答