|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Werte runden
|
Seitenanfang |
| Hallo Leute, brauch Hilfe beim Runden von Werten. Es soll ein reller Variablenwert als ganzzahliger, gerundeter Wert gespeichert werden (also nicht nur formatiert ausgegeben werden).Gibt es dazu z.B. die Möglichkeit den nichtganzzahligen Teil abzuschneiden? (ich erinnere mich dunkel in anderen Programmiersprachen ging das mit INT) Das Runden dachte ich mir so: z.B. 2 Nachkommatellen $gerundet = $ungerundet + 0,05 --> und dann soll halt der Nachkommarest weg. Danke schon mal für Eure Hilfe.
Datum: 18.12.2005-16:19

|
re: Werte runden
|
Seitenanfang |
| Hi, wenn Du statt printf() sprintf() benutzt, gibt Dir das alles, was Du für's runden brauchst: $ perl -e '$a=0.006; $b=sprintf("%0.2f", $a);print $b;'0.01 $ perl -e '$a=0.004; $b=sprintf("%0.2f", $a);print $b;' 0.00
Gruss, svenXY
Datum: 19.12.2005-10:41

|
re: Werte runden
|
Seitenanfang |
Hallo Sven, Herzlichen Dank zunächst für die schnelle Hilfe. Leider ist das Problem damit nicht gelöst, denn der Wert der Variablen wird dadurch nicht verändert. Es soll direkt der in dem Scalar gespeicherte Wert verändert werden, da dieser in der Folge für Formatierungsangaben also z.B. die Breite einer Grafik oder Tabelle verwendet werden soll, und dort kann es Probleme bei nicht ganzzahligen Werten geben.Thomas
Datum: 19.12.2005-12:20

|
re: Werte runden
|
Seitenanfang |
| Hi, sicher kannst Du damit rechnen. probier folgendes:
perl -e '$a=5.445;$b=sprintf("%.2f", $a+2);print $b."\n"'
-uw
Datum: 19.12.2005-12:40

|
re: Werte runden
|
Seitenanfang |
Du sprachst in Deinem Beispiel von zwei Nachkommastellen... $ perl -e '$a=0.404; $a=sprintf("%.0f", $a);print $a;' 0$ perl -e '$a=0.604; $a=sprintf("%.0f", $a);print $a;' 1
Datum: 19.12.2005-12:33

|
re: Werte runden
|
Seitenanfang |
| Hallo sven, ich meinte damit die Rundungsgenauigkeit, also auf 2 Stellen genau. Aber ich bin noch am probieren, ob ich mit deiner Variante nicht doch weiter komme. Thomas
Datum: 19.12.2005-12:37

|
re: Werte runden
|
Seitenanfang |
| Hallo Sven, das scheint hinzuhauen... Super. Danke Thomas
Datum: 19.12.2005-12:40

|
|

|

|

|
 |

|

|
|