我有一个算法可以返回一个带小数点的数字(即“.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))
只是展示其他一些获得相同结果的方法
$number = ltrim($number, '.');
这将删除所有尾随点。
我用过 eregi_replace 和 str_replace 都没有工作!
嗯......ereg_replace()
不会起作用,因为它使用的是正则表达式,并且.
(点)字符具有特殊含义:所有内容(因此您已将每个字符替换为“”(空字符串))。
但str_replace()
在这种情况下工作得很好。
这是一个现场测试:http: //ideone.com/xKG7s
您说您尝试使用 str_replace 没有任何运气,但以下代码完美运行:
<?php
$one = '.57';
$two = str_replace('.', '', $one);
echo $two;
?>
这将作为整数返回。
$two = (integer) trim('.', $one);