PHP: Отсечение дробной части без округления

19.03.2017  16:56

Возникла задача обрезать географические координаты до 3-х цифр после запятой. Штатными средствами это не сделать, т.к. в некоторых случаях срабатывает ненужное округление последней цифры. Тупо обрезать так же не катит, т.к. длина строки неизвестна (можно посчитать, но это дрочево; неизвестно сколько знаков перед запятой).

Решение: регулярка
$lat = '59.871556';
$reg = "|([d]+)+(.)+([d]+){3}|Uis";
preg_match_all($reg,$lat,$outlat);
if (!empty($outlat[0][0])) $lat_tmp = $outlat[0][0];
else $lat_tmp = $lat;
echo $lat.' - '.$lat_tmp;
echo '
'.round($lat,3);

round использован для примера, распечатывается такой результат:
59.871556(исходное значение) - 59.871(то что нам нужно)
59.872 (неверный результат работы round. как бы верны, но нам надо другое, без округления)
Всё!


перейти в Блог | Блог (стр. 6)

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): PHP 55  web-программирование 79  молодым домохозяйкам 44  регулярные выражения 6  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)