Ich sage mal so: Der Syntax Parser in Rega ist eine Bitch
Und das "Problem" mit der Formatierung von floating point werten mittels wissenschaftlicher Notation ist in der Tat nichts neues. Es ist nämlich genauso wie du es bemerkt hast, das der Parser mit solchen real werten in wiss. Notation nichts anfangen kann wenn diese nicht in Anführungszeichen gesetzt sind, d.h. also zuerst einmal ein String waren. Genau deshalb wurde ja auch die Skriptdokumentation entsprechend angepasst (siehe
https://www.eq-3.com/Downloads/eq3/down ... g_V2.2.pdf) und dahingehend repariert, das das dort vorkommende Beispiel wie folgt aussieht (Siehe Kapitel 6.4):
D.h. der real wert mittels wiss. Notation muss zwingend in Anführungszeichen gesetzt werden. Folglich müsste dein Beispiel wie folgt (wie du schon gezeigt hattest) aussehen:
Code: Alles auswählen
object o1 = dom.GetObject(3478);
o1.State("37.6e-1".ToFloat()); !- Geht ergibt 3.76
WriteLine(o1.State());
Nun mag das vielleicht unschön sein und in der Tat würde ich gerne das in der Skriptsprache auch reparieren. Die Frage ist nur ob sich hierfür der Aufwand wirklich lohnt und ob das auch nicht dazu führen würde das es dann in naher Zukunft Skripte gibt die die wiss. Notation ohne Anführungszeichen nutzt und damit zu älteren Versionen inkompatibel sind. Nun kann man natürlich prinzipiell bei vielen Änderungen so argumentieren, aber das hier erscheint mir IMHO ein verschmerzbarer Kompromiss zu sein – real werte eben in Strings zu verpacken wenn man unbedingt die wiss. Notation einsetzen will/muss.