подскажите команду для подсчета знаков после запятой (dps) ?

alexblade

Новичок
подскажите команду для подсчета знаков после запятой (dps) ?

число может быть
2 ; 2.2 ; 2. ; 2.0 ; .0 ; 2.000

и результат подсчета dps соответственно должен быть
0 ; 1 ; 0 ; 1 ; 1 ; 3

есть такая команда ?
 

Beavis

Banned
alexblade
в php вообще нет никаких команд, команды - в армии)

это число в виде строки хранится?
 

alexblade

Новичок
хранятся где в виде строки, где в виде числа - но это не проблема, в том плане если надо конвернту в необходимое.

интересует есть ли такая команда(функция Beavis), одна команда?
а то я сейчас как раз набором функций это вычесляю, хотелосьбы одной функцией получать этот рузельтат если возможно
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
alexblade
нету такой функции
 

Gas

может по одной?
alexblade держи магию )
PHP:
$str = '2 ; 2.2 ; 2. ; 2.0 ; .0 ; 2.000';
var_dump(preg_replace('~.*(\.(\d+)?)?[^0-9]*($|;)~Ue', '(!"$0")?"":strlen("$2")." ; ";', $str));
 

alexblade

Новичок
Gas
спасибо :)
но числа поступают по одному. это я просто привел сразу все возможные варианты и разделил их чтоб небыло путаницы ";"

но в любом случае можно и регуляркой но я пока explode делаю

Single минималист я . если можно одноё сделать зачем тремя функция работать ?
 

Gas

может по одной?
но числа поступают по одному
а, тогда не интересно, можно так:
PHP:
$str = ' .3455 ';
echo preg_replace('~^.*(\.(\d+)?)?$~Ue', 'strlen("$2")', trim($str));
но я бы регуляркой не делал, это я для разминки мозка только )
 

alexblade

Новичок
на одну функцию больше сделал но зато без дополнительных переменных и проверок да и так красивее выглядит :)

strlen(substr(strstr($in1[0],'.'),1));

еще сильнее ктото упростить(укоротить) может ?
 
Сверху