Seite 1 von 2

Auf-Ab-Runden

Verfasst: 02.08.2006 15:22
von Thomas
Wie kann ich eine Zahl x (in meinem Fall eine Variable x) auf- bzw. abrunden? :|
Wenn x hinter dem Komma (punkt) größergleich .5 ist soll aufgerundet werden.
Wenn x hinter dem Komma kleiner als .5 ist soll abgerundet werden.
Habs schon mit dem Befehl Round versucht, bei mir kommt aber ein falscher Wert raus.

Danke schon im Voraus für eure Antworten!!!!!!!!!! :D

Verfasst: 02.08.2006 15:27
von Kaeru Gaman

Code: Alles auswählen

Int(x + 0.5)
für positive zahlen.

Verfasst: 03.08.2006 10:20
von HoDam

Code: Alles auswählen

round((X+0,5), 0)
da dürfen es dann auch negative Zahlen sein


zweites Argument
0 immer abrunden
1 immer aufrunden

Verfasst: 04.08.2006 20:22
von Thomas
Hallo
Kaeru Gaman hat geschrieben:

Code: Alles auswählen

Int(x + 0.5)
Und ich habs ausprobiert:
Es geht nur ohne dem "x + 0.5" also:

Code: Alles auswählen

Int(x)
Wieso???

Verfasst: 05.08.2006 01:01
von HoDam
muss natürlich Dezimalzeichen Punkt sein

Zahl1.f = 12.6

Debug Round((Zahl1.f+0.5),0)

Zahl1.f= -Zahl1

Debug Round((Zahl1+0.5),0)

Verfasst: 05.08.2006 09:13
von Kaeru Gaman
Thomas Obermeier hat geschrieben:Hallo
Kaeru Gaman hat geschrieben:

Code: Alles auswählen

Int(x + 0.5)
Und ich habs ausprobiert:
Es geht nur ohne dem "x + 0.5" also:

Code: Alles auswählen

Int(x)
Wieso???
unsinn.

bekommst du beim ersten ne fehlermeldung? :freak:
das würde ich zumindest unter "geht nicht" verstehen.

also was genau funktioniert nicht?

Int(x) schneidet die nachkommastellen ab.
also wird auch aus 3.7 eine 3.0
du musst die 0.5 addieren, damit zahlen über x.5 zu x+1 werden.

Verfasst: 05.08.2006 20:19
von Thomas
Tschuldigung, jetzt hab ich mich selbst verschrieben.
Ich meinte natürlich

Code: Alles auswählen

Int(x + 0.01)
.
Dann wird z.B. aus "3.49" eine 3.
Oder aus "3.50" und größer ne 4.
Und ne Fehlermeldung kommt gar nicht. :D

Hab die 3.3 Version

Verfasst: 05.08.2006 20:46
von Kaeru Gaman
> Hab die 3.3 Version

würdest du dass dann BITTE endlich mal in deine signatur schreiben?

ich hab schon ein gutes gedächtnis, und nicht mal ich habs mir gemerkt.

Thomas Obermeier hat geschrieben:

Code: Alles auswählen

Int(x + 0.01)
.
Dann wird z.B. aus "3.49" eine 3.
Oder aus "3.50" und größer ne 4.
ach du kagge.. rundet beim 3.3 das Int() automatisch auf?

also, normalerweise schneidet Int() die nachkommastellen ab.
aus 3.999999999999 sollte 3 werden.
dementsprechen muss man 0.5 addieren, damit ab 3.5 ne 4 draus wird.

Verfasst: 05.08.2006 20:58
von #NULL
nein KG, du hast schon recht.
Int() ist wie ne art Floor() oder gaußklammer (Int->Integer->Ganzzahlanteil), ich weiß aber nicht wie's in PB 3.3 ist.

wie wärs denn mit
Round( PB 3.3 , 1 ) <)

Verfasst: 07.08.2006 13:34
von Thomas
An Kaeru Gaman:

Passt das jetzt so:
Hab mir jetzt ne Signatur geschrieben.