Autor: Arndt Lindner (---.dip0.t-ipconnect.de)
Datum: 30.04.16 21:02
Das folgende kleine Testprogramm zeigt einen Fehler bei Variablendeklarationen mit Typbezeichner und einen Variablennamen, der mit "e" beginnt und danach eine Ziffer im Variablennamen trägt. Bei Verwendung dieser Variablen wird sie immer als Gleitkommanull interpretiert.
declare double x, string e4, int errl
errl = 0
set("ErrorLevel",errl)
cls
print "ErrorLevel",errl
print
e4 = "test"
print "test:",e4
print
print "val(\q1e4\q):",val("1e4")
print "1e4:",1e4
'x = 1e+4
print "x = 1e4:",x
x = "1e4"
print "x = \q1e4\q:",x
print
print "val(\q1e-4\q):",val("1e-4")
'print "1e-4:",1e-4
'x = 1e-4
print "x = 1e-4:",x
x = "1e-4"
print "x = \q1e-4\q:",x
waitinput
Zusätzlich zeigt das Programm einige Eigentümlichkeiten auf, wenn man Zahlen in wissenschaftlicher Notation verwendet.
Mit Errorlevel > -1 wird das Programm mit "Variable nicht declariert: 1e" abgebrochen. Dabei bezieht sich die Fehlermeldung auf 1e-4. 1e4 wird auch bei diesem Errorlevel verstanden.
ErrorLevel -1
test: 0.000000
val("1e4"): 10000.000000
1e4: 10000.000000
x = 1e4: 5.000000
x = "1e4": 10000.000000
val("1e-4"): 0.000100
1e-4: -3.000000
x = 1e-4: -3.000000
x = "1e-4": 0.000100