![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Henrik, 27. 09. 1999, 11:54
Hi,
folgendes Problem. Ich möchte eine double variable ausgeben. Es sollen aber nur 2 Stellen
hinter dem Komma ausgegeben werden. Kann mir jemand helfen ?
Dank schonmal !
cu
Henrik
Die folgende Nachricht zum Thema stammt von: Cheatah, 27. 09. 1999, 12:30
Hi,
»» folgendes Problem. Ich möchte eine double variable ausgeben. Es sollen aber nur 2 Stellen
»» hinter dem Komma ausgegeben werden. Kann mir jemand helfen ?
Perl kennt so etwas wie "Double" nicht, oder "Real", "Integer" etc. Es kennt nur "Skalar", was sowohl String als auch Zahl sein kann, egal von welchem Typ. Um nur zwei Nachkommastellen auszugeben, solltest Du Dich mit dem Befehl sprintf auseinandersetzen. Lies dazu am besten die bei Perl mitgelieferte Dokumentation: perldoc -f sprintf.
Cheatah
Die folgende Nachricht zum Thema stammt von: Rolf, 27. 09. 1999, 14:12
Hallo Cheatah,
sprintf() ist ok, mit dem folgenden Testscript werden genau 2 Stellen ausgegeben, bloß: wie verhindere ich das Runden?
---testsript---
$x = <STDIN>; # Eingabe mit Punkt
$s = sprintf ("%.2f", $x);
print $s;
---ende---
Viele Grüße, Rolf
Die folgende Nachricht zum Thema stammt von: Beate Mielke, 27. 09. 1999, 16:03
Hallo Rolf,
»» sprintf() ist ok, mit dem folgenden Testscript werden genau 2 Stellen ausgegeben, bloß: wie verhindere ich das Runden?
»»
»» ---testsript---
»» $x = <STDIN>; # Eingabe mit Punkt
»» $s = sprintf ("%.2f", $x);
»» print $s;
»» ---ende---
$x = <STDIN>;
$x = int ($x * 100) / 100;
printf ("%.2f", $x);
Viele Gruesse
Beate Mielke
Die folgende Nachricht zum Thema stammt von: Rolf, 27. 09. 1999, 16:13
Hallo Beate,
»» $x = <STDIN>;
»» $x = int ($x * 100) / 100;
»» printf ("%.2f", $x);
Vielen Dank, das geht ja einwandfrei!
Viele Grüße, Rolf
Die folgende Nachricht zum Thema stammt von: BAKKA, 27. 09. 1999, 12:57
Hailo...
is zwar n bischen kompliziert und nicht sehr elegant, aber es funktioniert
$i=0.333333; #i ist deine zahl..
@erg=split(/\./,$i);
@nachkomma=split(//,$erg[1]);
@ergebnis="$erg[0],.,$nachkomma[0],$nachkomma[1]";
$wert=join("",@ergebnis);
$wert=~s/,//g;
print $wert."\n";
Viel spass (oder glueck?)
BAKKA
Die folgende Nachricht zum Thema stammt von: Beate Mielke, 27. 09. 1999, 14:14
Hallo Henrik;
»» folgendes Problem. Ich möchte eine double variable ausgeben. Es sollen aber nur 2 Stellen
»» hinter dem Komma ausgegeben werden. Kann mir jemand helfen ?
printf ("Ausgabe: %.2f\n", $Zahl);
# Gibt Float-Zahlen mit 2 Nachkommastellen aus.
printf ("Ausgabe: %.2e", $Zahl);
# Gibt Zahlen im e-Format mit 2 Nachkommastellen aus.
Angenommen folgende Zahl soll ausgegeben werden: 1234567890.125
im 1. Fall (f-Format) wird ausgegeben: 1234567890.13 (es wird gerundet)
im 2. Fall (e-Format) wird ausgegeben: 1.23e+009
Uebrigens habe ich festgestellt, daß Perl bei mir (unter Windows) im f-Format ab der 18. Stelle alles in Nullen umwandelt.
Viele Gruesse
Beate Mielke
© 1998-2006
Impressum, Software: Classic Forum