我有一个算法可以返回带小数点的数字(例如“0.57”)。我想要做的是只获取“57”而不含小数点。
我已经使用了eregi_replace和str_replace,但都没有起作用!
$one = ".57";
$two = eregi_replace(".", "", $one);
print $two;
$one = '.57';
$two = str_replace('.', '', $one);
echo $two;
可以这样做。已经测试了100%。顺便提一下,所有的ereg(i)_*函数都已经过时了。如果需要使用正则表达式,请改用preg_*。
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))
.572
,它就不起作用了。结果将是57。 - Jonah$number = ltrim($number, '.');
这将删除所有尾随的点。
你说你已经尝试过使用str_replace,但是下面的代码完美地运行起来:
<?php
$one = '.57';
$two = str_replace('.', '', $one);
echo $two;
?>
eregi_replace
和 str_replace
,但都没有起作用!
嗯,eregi_replace()
不会起作用,因为它使用正则表达式,而 .
(点)字符具有特殊含义:代表任何字符(所以您已经将每个字符替换为了空字符串 "")。
但在这种情况下,str_replace()
完全可以正常工作。
这里是一个实时测试: http://ideone.com/xKG7s
这将返回一个整数。
$two = (integer) trim('.', $one);