-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[12] Come posso mostrare dei numeri con l'aggiunta delle virgole? number, commify

(contributo di brian d foy e Benjamin Goldberg)

[a differenza dell'Italia, nei paesi anglosassoni, il separatore delle migliaia è la virgola mentre quello dei decimali è il punto, NdT]

Potete utilizzare Number::Format per separare il numero in porzioni più piccole. Gestisce correttamente il locale, per quelli fra voi che vogliano inserire dei punti (o qualsiasi altra cosa vi chiedano di usare, veramente).

Questa subroutine aggiungerà le virgole al vostro numero:

	sub virgolante {
	   local $_  = shift;
	   1 while s/^([-+]?\d+)(\d{3})/$1,$2/;
	   return $_;
	   }

Questa espressione regolare di Benjamin Goldberg, aggiungerà virgole ai numeri:

    s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/g;

È più semplice vederla con i commenti:

    s/(
        ^[-+]?            # l'inizio del numero.
        \d+?              # la prima cifra prima della prima virgola
        (?=               # seguita da, (ma non incluso nel match):
           (?>(?:\d{3})+) # alcuni multipli positivi di tre cifre.
           (?!\d)         # un multiplo *esatto*, non x * 3 + 1 o quant'altro.
        )
       |                  # oppure:
        \G\d{3}           # dopo l'ultimo gruppo, prendi 3 cifre
        (?=\d)            # ma devono avere altre cifre dopo di loro.
    )/$1,/xg;

vedi in inglese

AUTORE E COPYRIGHT

Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan Torkington. Tutti i diritti riservati.

Questa documentazione è libera; puoi ridistribuirla e/o modificarla secondo gli stessi termini applicati al Perl.

Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di codice in questo file sono rilasciati al pubblico dominio. Potete, e siete incoraggiati a farlo, utilizzare il presente codice o qualunque forma derivata da esso nei vostri programmi per divertimento o per profitto. Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese ma non è obbligatorio.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google