perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 25
Click for quality!




10.02.2012 / 21:10

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragWerte 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: Werte runden
Seitenanfang
Hallo Sven,

das scheint hinzuhauen...

Super. Danke

Thomas

Datum: 19.12.2005-12:40

-






-
-