Seite 1 von 2
Totale Falschmeldung!
Verfasst: 27.10.2009 18:46
von PB42
Hallo, eine Verzweigung soll reagieren, wenn der zuvor gemessene Wert 0 ist. Das tut sie auch... allerdings wenn der zuvor gemessene Wert alles andere als 0 ist. Der Code:
Code: Alles auswählen
bq.d = 57320043
If Pow(bq.d,0.5) - Int(Pow(bq.d,0.5)) = 0
Debug Pow(bq.d,0.5) - Int(Pow(bq.d,0.5)) ;0.000132....
EndIf
Die Quadratwurzel von 57320043 geht also eindeutig NICHT auf und trotzdem läuft die Verzweigung so, als würde sie aufgehen. Dabei zeigt doch der Debugger höchstselber an, daß der Wert NICHT 0 ist. Habt Ihr sowas schonmal erlebt???
PB42
Typecasting Problem
Verfasst: 27.10.2009 18:51
von Kaeru Gaman
das ist wohl ein Typecasting Problem.
Code: Alles auswählen
bq.d = 57320043
a.d = Pow(bq.d,0.5)
b.d = Int(Pow(bq.d,0.5))
Debug a
Debug b
If a - b = 0
Debug "=0"
Else
Debug "!=0"
EndIf
vermutlich werden zu viele werte im If-Ausdruck mit Integer gecastet.
beim impliziten Typecasting von PB steckt man nicht immer drin, was wo wie geschieht.
benutze container/dummies, wie in meinem Beispiel, dann stellst du sicher, dass es so reagiert wie du erwartest.
Re: Totale Falschmeldung!
Verfasst: 27.10.2009 18:52
von TomS
Code: Alles auswählen
bq.d = 57320043
result.d=Pow(bq.d,0.5) - Int(Pow(bq.d,0.5))
If result = 0
Debug Pow(bq.d,0.5) - Int(Pow(bq.d,0.5)) ;0.000132....
EndIf
So geht's
Re: Totale Falschmeldung!
Verfasst: 27.10.2009 19:05
von PB42
Ich habe das jetzt so gemacht wie Kaeru das vorgeschlagen hat und das läuft. Vielen Dank!
PB42
Re: Totale Falschmeldung!
Verfasst: 27.10.2009 19:12
von Kaeru Gaman
der Vorschlag von TomS unterscheidet sich kaum, er packt nur gleich das Ergebnis in einen einzelnen Container.
Re: Totale Falschmeldung!
Verfasst: 27.10.2009 21:18
von Kiffi
@PB42: Bitte diesen Thread mit einem aussagekräftigen Betreff versehen!
Grüße ... Kiffi
Re: Totale Falschmeldung!
Verfasst: 28.10.2009 00:07
von Kaeru Gaman
schlag was vor...

Re: Totale Falschmeldung!
Verfasst: 28.10.2009 00:12
von Kiffi
Kaeru Gaman hat geschrieben:schlag was vor...

wieso sollte ich? Das ist die Aufgabe des Threaderstellers.
Re: Totale Falschmeldung!
Verfasst: 28.10.2009 00:13
von ts-soft
Kaeru Gaman hat geschrieben:schlag was vor...

Warum muß bei Typumwandlung von Karotten im Quadrat alles in dumme Container gepackt werden?

Re: Totale Falschmeldung!
Verfasst: 28.10.2009 00:23
von HeX0R
"Typecasting die 34."