Seite 2 von 2

Re: [GELÖST] Mathematik

Verfasst: 29.07.2020, 10:42
von dtp
Black hat geschrieben:
29.07.2020, 10:29
das ist fieserweise nicht so ganz richtig....
Danke für deine Erläuterungen. Aber meine Aussage bezog sich nur auf den Variablentyp des Ergebnisses und nicht auf dessen Wert. Insofern war sie schon richtig. 8)

Ganz gemein wird's, wenn man besonders "schlau" sein will und einfach zur Sicherheit noch ein ".ToFloat()" hinten dran setzt. Bekanntermaßen wird ein Skript ja nicht ausgeführt, wenn man einen Real-Wert mit ".ToFloat()" behandelt. Andererseits stellt ".ToInteger()" auf einen Integer-Wert kein Problem dar.

Ich hatte nun das zusätzliche Problem, dass ich mit einer String-Variablen (ausgehend von dom.GetObject($src$).Value()) einen Mittelwert berechnen wollte, die sowohl ganzzahlig, als auch reell, als auch boolesch sein kann. Und wenn man dann auch noch mehrere if-Bedingungen in Abhängigkeit von dem Ergebnis im Skript hat, kann es schon mal zum Haare raufen sein. Aber ich hab's mittlerweile in den Griff bekommen. :wink:

Re: [GELÖST] Mathematik

Verfasst: 29.07.2020, 10:46
von Black
so gedeutet hat du natürlich auch recht, das Endergebnis wird, wie du korrekt angemerkt hast. den Typ des obersten Stackelementes haben, was in Zeilenschreibschrift das erste (ganz Liniks stehende ) Element der Gleichung ist.

Nur Zwischendrin gelten diese Typkonversionsregeln natürlich auch, und das ist halt ein beliebter Fehler.

Black

Re: [GELÖST] Mathematik

Verfasst: 29.07.2020, 14:19
von jmaus
dtp hat geschrieben:
29.07.2020, 10:42
Black hat geschrieben:
29.07.2020, 10:29
das ist fieserweise nicht so ganz richtig....
Ganz gemein wird's, wenn man besonders "schlau" sein will und einfach zur Sicherheit noch ein ".ToFloat()" hinten dran setzt. Bekanntermaßen wird ein Skript ja nicht ausgeführt, wenn man einen Real-Wert mit ".ToFloat()" behandelt. Andererseits stellt ".ToInteger()" auf einen Integer-Wert kein Problem dar.
Na wenn das wirklich so ist, dann solltest du ggf im RaspberryMatic GitHub einfach mal ein ReGaHss bezogenes Ticket dazu aufmachen denn es sollte ein leichtest sein das ToFloat() auf für ein float typ zuzulassen und einfach dann den float wert zurück zu liefern statt ein runtime error zu erzeugen...

Re: [GELÖST] Mathematik

Verfasst: 29.07.2020, 20:03
von MichaelN

Re: [GELÖST] Mathematik

Verfasst: 29.07.2020, 20:43
von alchy
Was soll denn das? jmaus, als ob du es nicht wüsstest :shock:

.ToFloat() ist nur auf Variablentyp string anwendbar.
.ToInteger() dagegen auf Variablentypen integer, boolean, real, string, time

Alchy

Re: [GELÖST] Mathematik

Verfasst: 29.07.2020, 20:44
von MichaelN
Deswegen ist es auch ein Feature request und kein Bug Report :roll:

Re: [GELÖST] Mathematik

Verfasst: 29.07.2020, 23:27
von jmaus
alchy hat geschrieben:
29.07.2020, 20:43
Was soll denn das? jmaus, als ob du es nicht wüsstest :shock:
Nöh, ich bin vergesslich wie du und jeder andere und hab darüberhinaus auch noch besseres zu tun als mich nur um ReGaHss zu kümmern. Insofern kann, will und muss ich auch nicht alles rund um die ReGa wissen oder mir merken.
.ToFloat() ist nur auf Variablentyp string anwendbar.
.ToInteger() dagegen auf Variablentypen integer, boolean, real, string, time
Und was spricht dagegen das jetzt zu ändern und .ToFloat() auch auf andere Datentypen anwendbar zu machen? Denn die Argumentationen die bisher für die Implementierung des selbigen gegeben wurden erscheinen mir schlüssig zu sein.

Re: [GELÖST] Mathematik

Verfasst: 30.07.2020, 22:01
von alchy
jmaus hat geschrieben:
29.07.2020, 23:27
Nöh, ich bin vergesslich .... und hab darüberhinaus auch noch besseres zu tun
Da ist absolut überhaupt nichts dagegen zu sagen :!:

aber
jmaus hat geschrieben:
29.07.2020, 14:19
Na wenn das wirklich so ist
das ist dann doch "XXXXXXX". :lol:
jmaus hat geschrieben:
29.07.2020, 23:27
Und was spricht dagegen das jetzt zu ändern
Hab ich ja nicht behauptet, das etwas dagegen spräche. :shock:

Alchy