PHP从数字字符串中删除十进制数

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)*函数都被折旧。如果您需要正则

我有一个算法,返回一个带小数点的数字(即“.57”)。我想做的是只得到“57”,不带小数点

我使用过eregi_替换和str_替换,但都不起作用

$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))