PHP从数字字符串中删除十进制数
我有一个算法,返回一个带小数点的数字(即“.57”)。我想做的是只得到“57”,不带小数点 我使用过eregi_替换和str_替换,但都不起作用PHP从数字字符串中删除十进制数,php,decimal,eregi,Php,Decimal,Eregi,我有一个算法,返回一个带小数点的数字(即“.57”)。我想做的是只得到“57”,不带小数点 我使用过eregi_替换和str_替换,但都不起作用 $one = ".57"; $two = eregi_replace(".", "", $one); print $two; 这将删除所有后续点 $one = '.57'; $two = str_replace('.', '', $one); echo $two; 这很有效。100%测试。顺便说一句,所有ereg(i)*函数都被折旧。如果您需要正则
$one = ".57";
$two = eregi_replace(".", "", $one);
print $two;
这将删除所有后续点
$one = '.57';
$two = str_replace('.', '', $one);
echo $two;
这很有效。100%测试。顺便说一句,所有ereg(i)*函数都被折旧。如果您需要正则表达式,请使用preg_*替换。您说您尝试使用str_ureplace时运气不佳,但下面的代码非常有效:
<?php
$one = '.57';
$two = str_replace('.', '', $one);
echo $two;
?>
这将作为整数返回
$two = (integer) trim('.', $one);
只是想用其他方法来达到同样的效果
我使用过eregi_替换和str_替换,但都不起作用
$one = ".57";
$two = eregi_replace(".", "", $one);
print $two;
嗯。。。无法工作,因为它使用常规表达式,
(点)字符具有特殊含义:所有内容(因此您已将每个字符替换为“”(空字符串))
但在这种情况下效果绝对不错
这里有一个现场测试:对不起,我们需要更精确的输入和输出规格……小数点是否总是在开头?很好,但我们不知道它是否总是在(左)边缘@马修是吗?很聪明,但如果他得到
.572
,那就行不通了。结果将是57。@Jonah:Fixed。也展示了一些其他的选择。
Method Result Command
x100 57 ((float)$one * 100))
pow/strlen 57 ((float)$one * pow(10,(strlen($one)-1))))
substr 57 substr($one,1))
trim 57 ltrim($one,'.'))
str_replace 57 str_replace('.','',$one))