URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2799
[ Назад ]

Исходное сообщение
"регулярные выражения"

Отправлено Purple , 14-Апр-04 12:16 
как число из вида 1.5 привести к виду 1:50 ?

Содержание

Сообщения в этом обсуждении
"регулярные выражения"
Отправлено Purple , 14-Апр-04 13:00 
>как число из вида 1.5 привести к виду 1:50 ?
пока сделал так:
$var=1.5;
$var=$var."0";
$var=~s/\./:/;
print "$var";
коряво ,наверно.
попроще можно как то сделать?

"регулярные выражения"
Отправлено alchie , 16-Апр-04 04:09 
>>как число из вида 1.5 привести к виду 1:50 ?
>пока сделал так:
>$var=1.5;
>$var=$var."0";
>$var=~s/\./:/;
>print "$var";
>коряво ,наверно.
>попроще можно как то сделать?


s/(\d)\.(\d)/$1:${2}0/


"регулярные выражения"
Отправлено Purple , 16-Апр-04 07:33 
>
>s/(\d)\.(\d)/$1:${2}0/
Alchie,как всегда помог.
Спасибо.


"регулярные выражения"
Отправлено Purple , 16-Апр-04 08:47 
>>
>>s/(\d)\.(\d)/$1:${2}0/
>Alchie,как всегда помог.
>Спасибо.

Я ,наверное, непроходимый тупица , но не могу сделать следующее преобразование:
Если число вида 1.5 то преобразовать к виду 1:50, если число целое , то преобразовать к виду 1:00.


"регулярные выражения"
Отправлено alchie , 16-Апр-04 09:44 
>>>
>>>s/(\d)\.(\d)/$1:${2}0/
>>Alchie,как всегда помог.
>>Спасибо.
>
> Я ,наверное, непроходимый тупица , но не могу сделать следующее преобразование:
>
>Если число вида 1.5 то преобразовать к виду 1:50, если число целое
>, то преобразовать к виду 1:00.


perl -e '$a=1.5; ($a=sprintf("%.2f",$a))=~s/\./:/; print $a'
1:50
perl -e '$a=1; ($a=sprintf("%.2f",$a))=~s/\./:/; print $a'
1:00


не надо только забывать, что sprintf("%.2f" _округляет_ число до двух знаков после запятой

1.325 ==> 1.33
1.323 ==> 1.32


"регулярные выражения"
Отправлено Purple , 16-Апр-04 11:19 
>
>perl -e '$a=1.5; ($a=sprintf("%.2f",$a))=~s/\./:/; print $a'
>1:50
>perl -e '$a=1; ($a=sprintf("%.2f",$a))=~s/\./:/; print $a'
>1:00
>
>
>не надо только забывать, что sprintf("%.2f" _округляет_ число до двух знаков после
>запятой
>
>1.325 ==> 1.33
>1.323 ==> 1.32
Здесь немного посложнее получилось.
Alchie, спасибо за помошь!


"регулярные выражения"
Отправлено alchie , 16-Апр-04 11:50 
>>
>>perl -e '$a=1.5; ($a=sprintf("%.2f",$a))=~s/\./:/; print $a'
>>1:50
>>perl -e '$a=1; ($a=sprintf("%.2f",$a))=~s/\./:/; print $a'
>>1:00
>Здесь немного посложнее получилось.
>Alchie, спасибо за помошь!

можно сделать более читабельно?
$a=1.5;
$a=sprintf("%.2f",$a);
$a=~s/\./:/;
print $a;

абсолютно тоже самое