Auf-Ab-Runden

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Auf-Ab-Runden

Beitrag 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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Code: Alles auswählen

Int(x + 0.5)
für positive zahlen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag 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
PB 4 Final
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag 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???
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag 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)
PB 4 Final
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag 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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag 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 ) <)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

An Kaeru Gaman:

Passt das jetzt so:
Hab mir jetzt ne Signatur geschrieben.
v6.00
Antworten