Schrift
[thread]6587[/thread]

runden in Perl (Seite 2)

Leser: 17


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
Dubu
 2004-12-22 15:38
#50206 #50206
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Code: (dl )
1
2
3
4
5
...
print float2money(0.01);
_ _END_ _
Use of uninitialized value in concatenation (.) or string at float2money.pl line 15.
Use of uninitialized value in concatenation (.) or string at float2money.pl line 15.


Tja ...
root
 2004-12-22 16:46
#50207 #50207
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub float2money{
my $zahl =$_[0];
$zahl = int($zahl*100+0.5);
return "0,00" if $zahl == 0;
$zahl =~ m/(\d?)(\d)$/;
$zahl = int($zahl/100);
my $erstestelle = $1;
$erstestelle = 0 unless $1;
my $zweitestelle = $2;
$zweitestelle = 0 unless $2;
return $zahl.",".$erstestelle.$zweitestelle;
}


Nur Schulden sollte man nicht machen :-)
esskar
 2004-12-22 16:50
#50208 #50208
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
kiss

Code: (dl )
$gerundet = int(sprintf("%.0f", $zahl));
root
 2004-12-22 17:02
#50209 #50209
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
aber nicht auf 2 Stellen!

Und Schulden werden vernichtet :-)\n\n

<!--EDIT|root|1103727834-->
root
 2004-12-22 17:04
#50210 #50210
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub float2money{
my $zahl =$_[0];
$zahl = int(sprintf("%.0f", $zahl*100));
return "0,00" if $zahl == 0;
$zahl =~ m/(\d?)(\d)$/;
$zahl = int($zahl/100);
my $erstestelle = $1;
$erstestelle = 0 unless $1;
my $zweitestelle = $2;
$zweitestelle = 0 unless $2;
return $zahl.",".$erstestelle.$zweitestelle;
}

print float2money(-0.02);


Ergibt
Code: (dl )
0,02
renee
 2004-12-22 17:22
#50211 #50211
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
    my $erstestelle = $1;
$erstestelle = 0 unless $1;
my $zweitestelle = $2;
$zweitestelle = 0 unless $2;


besser:
Code: (dl )
1
2
    my $erstestelle = $1 || 0;
my $zweitestelle = $2 || 0;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
esskar
 2004-12-22 17:24
#50212 #50212
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
meine antwort war ja für den orginal post
root
 2004-12-22 17:53
#50213 #50213
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
ohhh ja, sieht gut aus!
bianca
 2009-12-11 06:52
#129170 #129170
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
Diese sub rundet negative Beträge falsch.
Habs nur mal getestet, weil ich gerade ein Problem damit habe....
10 print "Hallo"
20 goto 10
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2004-12-20 16:15.