
Jasmine
Administrator
Jan 26, 2001, 10:15 AM
Post #1 of 1
(2961 views)
|
How can I output my numbers with commas added?
|
Can't Post
|
|
(From the Perl FAQ) How can I output my numbers with commas added? This one will do it for you: sub commify { local $_ = shift; 1 while s/^(-?\d+)(\d{3})/$1,$2/; return $_; } $n = 23659019423.2331; print "GOT: ", commify($n), "\n"; GOT: 23,659,019,423.2331 You can't just: s/^(-?\d+)(\d{3})/$1,$2/g; because you have to put the comma in and then recalculate your position. Alternatively, this commifies all numbers in a line regardless of whether they have decimal portions, are preceded by + or -, or whatever: # from Andrew Johnson <ajohnson@gpu.srv.ualberta.ca> sub commify { my $input = shift; $input = reverse $input; $input =~ s<(\d\d\d)(?=\d)(?!\d*\.)><$1,>g; return reverse $input; }
|