PHP удаляет десятичную дробь из числовой строки
У меня есть алгоритм, который возвращает число с десятичной запятой (т. Е. ".57"). Что я хотел бы сделать, так это просто получить "57" без десятичной дроби.
Я использовал eregi_replace и str_replace, и ни один из них не работал!
$one = ".57";
$two = eregi_replace(".", "", $one);
print $two;
6 answers
$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, '.');
, который удаляет все конечные точки.
Вы говорите, что безуспешно пытались использовать str_replace, но следующий код работает отлично:
<?php
$one = '.57';
$two = str_replace('.', '', $one);
echo $two;
?>
Я использовал eregi_replace и str_replace, и ни один из них не работал!
Хорошо... ereg_replace()
не будет работать, потому что он использует регулярные выражения, а символ .
(точка) имеет особое значение: все (таким образом, вы заменили каждый символ на "" (пустая строка)).
Но str_replace()
в этом случае работает абсолютно нормально.
Вот живой тест: http://ideone.com/xKG7s
Это будет возвращено в виде целого числа.
$two = (integer) trim('.', $one);