Отсечь последние цифры после точки

DenVeroid

Новичок
Отсечь последние цифры после точки

есть строки, и нужно из них вырезать и оставить последни не болеее 4-х цифр


есть строки, примерно такого типа

16.976777777778
16.9767
77
7777
5713.7778
514.11

и нужно сделать так чтобы те цифры что после точки были не более 4-х цифр, тоесть если у нас число такого типа 16.976777777778 то после должно получиться так 16.9767


из примера ничего не получается

PHP:
$string = "16.976777777778";
$separat = ".";
echo $string = substr($string, 0, strpos($string,$separat));
 

SelenIT

IT-лунатик :)
Demiurg, осмелюсь заметить, что number_format не совсем соответствует поставленной задаче
если у нас число такого типа 16.976777777778 то после должно получиться так 16.9767
 

Нечто

Психолог РНРClub
PHP:
$num = '16.976777777778';
list($num1, $num2) = sscanf($num, '%d.%04d');
echo $num1.'.'.$num2;
Я бы так сделал. Наверное, тупо, но работает.
 

ayrat9

Новичок
$string=16.976777777778;
$separat = ".";
$string = substr($string, 0, (strpos($string,$separat)+5));
echo $string;

проверь!
 

Нечто

Психолог РНРClub
ayrat9
А если strpos вернет 0, когда число будет целое? Оно обрежется до 5 символов.
 

ayrat9

Новичок
а что нужно сделать с целым числом? или его вообще никак не обрезать?
 

Нечто

Психолог РНРClub
ayrat9, читай топик сначала. Естественно, целые обрезать не нужно. vovanium уже дал рабочий регуляр.
 

ayrat9

Новичок
А так?

$string=16.976777777778;
echo "<br>".$string."<br>";
$separat = ".";
if(substr_count($string, $separat)>0)
{
$string = substr($string, 0, (strpos($string,$separat)+5));
}
echo $string;

Сорри, я в регулярах не силен.
 

Crys

Двинутый новичок
А если с округлением нужно, то
Код:
$string=16.976777777778;
echo round($string,4);
//На выходе - 16.976[b]8[/b]
 

DenVeroid

Новичок
блин, пока меня небыло стольоко примеров хороши по надовали, даже незнаю какой выбрать, пока остановился на примере что дал vovanium

огромное вам всем спасибо, за помощь
 
Сверху