Если вы не уверены в количестве десятичных разрядов, вы можете использовать регулярные выражения для удаления нецифровых значений из вашей строки.
echo preg_replace('~\D+~', '', $amount);
\D
означает любое нечисловой символ+
означает один или несколько.
Если значение необходимо преобразовать как целое число (а не строку), напишите (int)
непосредственно перед preg_replace
.
Конечно, вы можете использовать str_replace()
и нацеливать известные символы, такие как: $
и .
(и -
, если он может существовать).
Через некоторое времяобратная связь от OP ...
Вы можете округлить и отформатировать за один шаг с number_format()
.
Код: (Демо: https://3v4l.org/ir54s)
$amounts = array(0.001, 0.005, 5.20, 5.195, 5.204, 5);
foreach ($amounts as $amount) {
echo $amount , "->" , (int)number_format($amount, 2, '', '')."\n";
}
Вывод:
0.001->0
0.005->1
5.2->520
5.195->520
5.204->520
5->500