Warum rundet Bascom da jetzt auf 1 ab ??
Du hast A als "Long" deklariert und der Datentyp Long ist eine 4 Byte grosse Ganzzahl, d.h. eine Zahl ohne Kommastellen.

Wenn du A mit mit 0.63 multiplizierst, nimmt Bascom vermutlich automatisch für A eine Typumwandlung vor, weil an dem Dezimalpunkt in 0.63 eindeutig zu erkennen ist, dass du mit Kommastellen rechnen möchtest.

Wenn du A mit einer Ganzzahl z.B. 63 Multiplizierst und durch eine Ganzzah ,z.B. 100 teilst ist nicht eindeutig klar, dass du mit Dezimalstellen rechnen möchtest und Bascom nimmt keine Typumwandlung vor. Daher wird dir für A als ganzzahliger Datentyp die 2 ausgegeben.

Kannst ja mal versuchen A mit 63.0 zu Multiplizieren und durch 100.0 zu teilen. Vermutlich kommt dann nicht mehr 2 raus.

Eigentlich sollte ja auch 1,89 rauskommen....
Dann deklariere A mal als Single oder Double.

Kennt jemand vielleicht einen Link, wo gut beschrieben wird, wie man mit Bascom (gut) rechnen kann ?
Ein paar Infos dazu findest du in der Bascom Hilfe unter "Language Fundamentals".
Dort sind auf jeden Fall die verschiedenen Datentypen beschrieben und du findest ein paar Infos, warum bei manchen Berechnungen kein genaues Ergebnis rauskommen kann.


Das Problem über das du hier gestolpert bist, findest du aber in den meisten anderen Programmiersprachen auch. Wenn du irgendwo ein Buch oder ein Forum zu C, C++, Java usw. findest, kannst du da auch mal die Themen Datentypen, Deklaration von Variablen, und Typumwandlung nachschlagen.