Thread Eingebene Dezimalzahl mit Komma umwandeln in Gleitkommazahl mit Punkt (15 answers)
Opened by Newbie2008 at 2008-12-06 14:50

pktm
 2008-12-07 19:46
#116941 #116941
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
pq+2008-12-06 20:03:18--
die zwei codes zu vergleichen, ist ziemlich sinnlos, denn der code von gast macht was ganz anderes =)
er fügt alle 3 zeichen ein komma ein, das aber auch nicht richtig:
Code: (dl )
1
2
3
4
5
$ perl -wle'
$num = shift;
$num =~ s/(\d{1,3})(?=(?:\d{3}))/$1\,/g;
print $num;' 12345678901
123,456,78,901



Oh, da war ich wohl zu erpicht aufs Testen und hab glatt vergessen, mir die Sache auch mal anzusehen :-s
Ist natürlich Quatsch, so wie es oben steht.

So müsste es besser sein:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/Perl/bin/perl

use strict;
use warnings;
use Benchmark qw(:all) ;

my $count = 10000000;

cmpthese($count, {
'tr' => sub {
my $var = '5,10';
$var =~ tr/,/./;
},
's' => sub {
my $var = '5,10';
$var =~ s/\,/\./g;
},
});


Quote
Rate s tr
s 1033912/s -- -67%
tr 3092146/s 199% --
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Eingebene Dezimalzahl mit Komma umwandeln in Gleitkommazahl mit Punkt