/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Tusinde-adskillere
Fra : Adam Sjøgren


Dato : 05-07-02 14:23

Hej.


Jeg synes jeg så en elegant måde i Perl at sætte tusinde-adskillere
ind i et tal... jeg kan bare ikke huske hvor/finde stedet igen.

Er der nogen der kan hjælpe?


Mvh.

--
"Okay, så håll käften och ta ner händerna, det är bra" Adam Sjøgren
asjo@koldfront.dk

 
 
Lars Balker Rasmusse~ (05-07-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 05-07-02 14:46

spamtrap@koldfront.dk (Adam Sjøgren) writes:
> Jeg synes jeg så en elegant måde i Perl at sætte tusinde-adskillere
> ind i et tal... jeg kan bare ikke huske hvor/finde stedet igen.

1 while s/(?<=\d)(\d\d\d)\b/,$1/
--
Lars Balker Rasmussen "Special is bad."

N/A (06-07-2002)
Kommentar
Fra : N/A


Dato : 06-07-02 00:27



Lars Balker Rasmusse~ (06-07-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 06-07-02 00:27

R. A. Larsen <r_larsen@image.dk> writes:
> Lars Balker Rasmussen <lars@balker.org> wrote:
> > spamtrap@koldfront.dk (Adam Sjøgren) writes:
> > > Jeg synes jeg så en elegant måde i Perl at sætte tusinde-adskillere
> > > ind i et tal... jeg kan bare ikke huske hvor/finde stedet igen.
> >
> > 1 while s/(?<=\d)(\d\d\d)\b/,$1/
>
> Og dog. Følgende forsøg:
>
> perl -e "$_=1234.5678;1 while s/(?<=\d)(\d\d\d)\b/,$1/;print"

Jow, jeg har det med at tænke i heltal :)
>
> Jeg har i en anden nyhedsgruppe fundet følgende eksempel (jeg tror, det
> var Abigail, som kom med den):
>
> s((\d+))(local $_ = reverse $1; s((\d\d\d)(?=\d))($1,)g; reverse)e;
>
> Den giver resultatet "1,234.5678", hvilket ser mere rigtigt ud.

Abigail snyder :)

Princippet er det samme - det at det pakkes ind i en s()() gør at hun
også kun arbejder på et heltal. Princippet kan snildt bruges på min
version:

s((\d+))(local $_ = $1; 1 while s/(?<=\d)(\d\d\d)\b/,$1/; $_)e
--
Lars Balker Rasmussen                  "S.M.R.T."

Torben Frøberg (07-07-2002)
Kommentar
Fra : Torben Frøberg


Dato : 07-07-02 23:49

Adam Sjøgren wrote:

> Hej.
>
>
> Jeg synes jeg så en elegant måde i Perl at sætte tusinde-adskillere
> ind i et tal... jeg kan bare ikke huske hvor/finde stedet igen.
>
> Er der nogen der kan hjælpe?
>
>
> Mvh.
>
>

$number=sprintf ($format, $tal))=~s/\./,/;
1 while $number =~ s/^(-?\d+)(\d\d\d)/\1.\2/;

Mvh. Torben


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste