PHP从数字字符串中删除小数

时间:2011-01-19 18:27:57

标签: php decimal eregi

我有一个算法,它给出一个带小数点的数字(I.E.“。57”)。我想做的就是得到没有小数的“57”。

我使用过eregi_replace和str_replace,但都没有用过!

$one = ".57";
$two = eregi_replace(".", "", $one);
print $two;

6 个答案:

答案 0 :(得分:7)

$one = '.57';
$two = str_replace('.', '', $one);
echo $two;

有效。 100%测试。顺便说一下,所有ereg(i)_ *函数都是折旧的。如果你需要正则表达式,请使用preg_ *。

答案 1 :(得分:3)

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

只是展示了获得相同结果的其他方法

答案 2 :(得分:2)

$number = ltrim($number, '.');

删除所有尾随点。

答案 3 :(得分:1)

你说你试过使用str_replace没有任何运气,但下面的代码完美无缺:

<?php
    $one = '.57';
    $two = str_replace('.', '', $one);
    echo $two;
?>

答案 4 :(得分:1)

  

我使用过eregi_replace和str_replace,但都没有用过!

嗯... ereg_replace()无效,因为它使用常规表达式,.(点)字符具有特殊含义:一切(所以你已经将每个字符替换为“”(空字符串))。

str_replace()在这种情况下绝对正常。

这是一个实时测试:http://ideone.com/xKG7s

答案 5 :(得分:0)

这将以整数形式返回。

$two = (integer) trim('.', $one);