Wie Blitzmax einem zu Verzweifeln bringen kann.... :(

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

simi

Betreff: Wie Blitzmax einem zu Verzweifeln bringen kann.... :(

BeitragSa, Nov 05, 2005 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Dieser Code:
Code: [AUSKLAPPEN]
For i = 1 To 5
   Print "int("+String(2^i)+") = "+String(Int(2^i))
Next


gibt folgende Ausgabe:
Code: [AUSKLAPPEN]
int(2.0000000000000000) = 2
int(4.0000000000000000) = 4
int(7.9999999999999982) = 7
int(15.999999999999998) = 15
int(32.000000000000000) = 32


Warum rundet hier int nicht richtig.... Oder rundet int bei C auch nicht??

Gruss simi
 

Dreamora

BeitragSa, Nov 05, 2005 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die Hilfe liest, dann wirst du feststellen, das Int einfach nur alles hinter dem Komma abschneidet. Anders als in den alten Blitz wo es rundet.

Fürs runden gibts andere Befehle.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

rema

BeitragSo, Nov 06, 2005 0:02
Antworten mit Zitat
Benutzer-Profile anzeigen
in diesem Einfachen fall musst du nur CEIL nehmen:

Code: [AUSKLAPPEN]

For i = 1 To 5
   Print "int("+ Ceil(2^i) +") = "+String(Ceil(2^i))
Next

simi

BeitragSo, Nov 06, 2005 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke, wusste ich noch nicht Wink

cu simi

stfighter01

BeitragSo, Nov 06, 2005 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, aber aufpassen:
ceil(2.00001)= 3
Denken hilft!
 

Dreamora

BeitragSo, Nov 06, 2005 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
einfache variante:
Code: [AUSKLAPPEN]

function round:int(input:double)
   return int(input + 0.5)
end function
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

poet

BeitragSo, Nov 20, 2005 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Gehört zwar nicht ganz zum Thema, aber ich muss sagen mich bringt ja eher zur Verzeiflung das 2^3 bei BlitzMax 7.9~ ergibt ... wenn man sich da schon nicht auf Genauigkeit verlassen kann was passiert dann bei komplexeren Berechnungen ...

Das 2^5 dann wieder genau 32 ergibt verwirrt mich dann noch mehr ...

Artemis

BeitragSo, Nov 20, 2005 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
bei einer potenzieren wird einfach in double-rechnung umgeschaltet. das heisst, dass nicht so genaue ergebnisse herauskommen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group