我会用 php_replace 删除结尾的零,我会有一个更好的函数。
价值:
$value = 123.12300;
当前功能:
return preg_match('#[.,][0-9]+[0]+$#', $value) ? preg_replace('#[0]+$#', '', $value) : $value;
另一个功能:
return preg_replace('#([.,]{0,1}\d+)[0]+$#', '\\1', $value);
先感谢您!
我会用 php_replace 删除结尾的零,我会有一个更好的函数。
价值:
$value = 123.12300;
当前功能:
return preg_match('#[.,][0-9]+[0]+$#', $value) ? preg_replace('#[0]+$#', '', $value) : $value;
另一个功能:
return preg_replace('#([.,]{0,1}\d+)[0]+$#', '\\1', $value);
先感谢您!
[0-9]+
,\d+
贪婪地匹配。(尽可能匹配)。它可以匹配尾随之一0
。所以使用非贪婪版本\d*?
。
并且[.,]{0,1}
可以使模式匹配,即使那是 no.
或,
。只需使用[.,]
.
$pattern = '#([.,]\d*?)0+$|[.,]$#';
var_dump(preg_replace($pattern, '\1', '123.12300'));
# => 123.123
var_dump(preg_replace($pattern, '\1', '1234000'));
# => 1234000
var_dump(preg_replace($pattern, '\1', '123456780.000000100'));
# => 123456780.0000001
var_dump(preg_replace($pattern, '\1', '123456780.'));
# => 123456780
只需使用rtrim
:
return rtrim($value,'0');
rtrim()
会做这项工作
$value = 123.12300;
echo rtrim($value,'0');