Ich habe mir die Linux-Demoversion herunter geladen.
Folgendes Programm habe ich programmiert um ein bisschen mit Zahlen und Ausgaben zu experimentieren, ist also kein super ernst zu nehmendes Programm, sondern damit will ich nur austesten wie die Dinge unter PureBasic funktionieren :
Code: Alles auswählen
OpenConsole()
PrintN("Ausgabe von Fließkommazahlen :")
PrintN("")
a.d = 12 / 8.78
PrintN(StrD(a.d))
PrintN("")
b.d = 10.123456789012345678
Print(StrD(b.d))
c.d = 10.1234567890123456789
Print(StrD(c.d))
Endlos:
Goto Endlos
1.) Problem
In Zeile 17 wird c.d = 10.1234567890123456789 als Fehler angezeigt mit der Meldung "Numerical overflow: too many digits."
Zeile 17 muss ich also schon mal weglassen oder mit ; (REM) in einen Kommentar umwandeln.
Offensichtlich stören PureBasic so viele Stellen nach dem Komma. Kann man was dagegen tun ? QBasic und QuickBasic haben viele Stellen nach dem Komma nicht gestört, die wurden einfach abgeschnitten, die die zu viel waren, und fertig.
2.) Problem
a.d = 12 / 8.78
PureBasic zeigt auf dem Terminal folgendes an :
1.3667425968
Das ist alles. Selbst mein programmierbarer Taschenrechner zeigt da mehr Nachkommastellen an, und auch das alte QBasic hat mehr Nachkommastellen gekonnt, nämlich 15 Stellen nach dem Komma, mit der 1 vorne weg also 16 signifikante Stellen.
Was läuft hier schief ? 10 Stellen nach dem Komma ist ganz bestimmt kein Double, und .f stattdessen zu benutzen bringt auch nichts.
Was mache ich da falsch ?
3.) Problem
b.d = 10.123456789012345678 wird auf dem Bildschirm als 10.1234567890 ausgegeben, also dasselbe Problem wie unter 2.)
4.) Problem
Muss man in PureBasic wirklich hinter jeder Variablen den Typbezeichner anhängen ? also .f oder .d und so weiter ?
Gibt es sowas wie DEFDBL A-Z was es unter QBasic und QuickBasic gibt ?, simpel und einfach.
Wie handhabt man das unter PureBasic am besten ?
LG