GLBasic Benutzerhandbuch

Main sections

Datentypen

Datentypen


Zahlen


GLBasic verwendet unter den "großen" Systemen für Zahlen 8 Byte (64 bit) Gleitkommazahlen. Optional kann der Variablenname ein '#' angehängt bekommen um dies zu verdeutlichen.
Diese Zahlen sind bei den "kleinen" Systemen mit ARM Prozessoren 4 Byte (32 Bit) Gleitkommazahlen. (PocketPC, GP2X, WIZ).

Zahlen mit einem '%' am Ende sind Ganzzahlen mit 4 Byte (32 Bit) Genauigkeit. Eine einmal deklarierte Variable behält ihren Typ bei, auch wenn das Zeichen am Ende weggelassen wird.

Einmal deklariert behalten Variablen ihren Typus bei, selbst wenn man % oder # bei späterer Verwendung weglässt.

Beachte, dass Kontsante Zahlen dazu fürhren können, dass Berechnungen direkt als Ganzzahloperation durchgeführt werden. Das kann zu unerwarteten Ergebnissen führen, wenn die Zuweisung eine Gleitkommazahl ist:

Beispiel:
MyNumber% = 1234       // Ganzzahl
Result# = MyNumber / 1000 // Ergebnis ist Gleitkomma



Da Result als Gleitkommazahl definiert wurde (kann also Nachkommastellen verwenden - mit dem '#' wird das angezeigt), würde man erwarten, dass das Ergebnis 1.234 ist. Jedoch wird die Operation zwischen 2 Ganzzahlen ausgeführt und dann erst zugewiesen. Das Ergebnis ist damit 1234/1000 = 1 (Ganzzahl).

Um eine Gleitkommaoperation zu erzwingen, muss man der Zahl ein .0 anhängen:
MyNumber% = 1234       // Ganzzahl
Result# = MyNumber / 1000.0 // Division ist schon Gleitkomma

Jetzt erhält man die erwarteten 1.234.


Wörter


GLBasic hat alle Wörter (Strings) mit 1 Byte (8 Bit) pro Zeichen gespeichert. Eine Wortvariable endet immer mit '$'. Das '$' darf nicht weggelassen werden.

Wörter und Zahlen können beliebig konvertiert werden:
a$="123.4"
b# = a$
a$ = b#


Möchte man numerische Operationen hierbei durchführen, sollte man sie in Klammern setzen, um nicht zwei Wörter zu addieren, was die Wörter aneinander kleben würde.

a$ = 3 + 4 // "34"
a$ = (3+4) // "7"


Es gibt keine Beschränkung der Zeichenlänge in GLBasic. Man kann Strings solange addieren bis man keinen Speicher mehr hat.

See also...