Wenn ich das jetzt richtig verstanden habe, muss ich einfach ein "=" mehr hinzufügen, um einen Stringvergleich durchführen und keine Zuweisung. Richtig?
Beiträge von meistertogo
-
-
Sorry wegen dem Doppelpost aber ich hab in dem Spoiler einen Fehler gemacht.
Hier die von mir gemeinte Version.Spoiler anzeigen
[autoit]
[/autoit]
$Ergebnis = ""
While 1
$Wurzeltest = InputBox("Wurzelrückgabewert Test", "Gib die Zahl ein, deren Wurzel Du erfahren möchtest!")
If @error = 1 Then
Exit
EndIf
$Ergebnis = Sqrt($Wurzeltest)
If $Ergebnis = "-1.#IND" Then
MsgBox(0, "Ungültige Eingabe!", "-1.#IND");wird nicht ausgeführt
Else
MsgBox(0, "Ergebnis der Wurzel", "Die Wurzel aus "&$Wurzeltest&" ist "&$Ergebnis&".")
EndIf
WEnd -
Danke für Eure schnellen Antworten. Der von mir gekennzeichnete Block wird auch nicht ausgeführt wenn ich das Skript ändere (s. Quelltext).
Spoiler anzeigen
[autoit]
[/autoit]
$Ergebnis = ""
While 1
$Wurzeltest = InputBox("Wurzelrückgabewert Test", "Gib die Zahl ein, deren Wurzel Du erfahren möchtest!")
If @error = 1 Then
Exit
EndIf
If $Wurzeltest = "" Then
MsgBox(0, "Ungültige Eingabe!", "Du hast nichts eingegeben.")
ElseIf $Wurzeltest = "-1.#IND" Then ; <-- das hier
MsgBox(0, "Ungültige Eingabe!", "-1.#IND") ; <-- und das
Else
$Ergebnis = Sqrt($Wurzeltest)
MsgBox(0, "Ergebnis der Wurzel", "Die Wurzel aus "&$Wurzeltest&" ist "&$Ergebnis&".")
EndIf
WEnd -
Hallo autoit - community!
Ich habe mit der Sqrt - Funktion ein bischen herumprobiert und bin dabei auf ein Problem mit dem Rückgabewert "-1.#IND" gestoßen.
Der Quellcode und das Problem erklären sich von selbst.Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]$Ergebnis = ""
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]$Wurzeltest = InputBox("Wurzelrückgabewert Test", "Gib die Zahl ein, deren Wurzel Du erfahren möchtest!")
[/autoit] [autoit][/autoit] [autoit]If @error = 1 Then
[/autoit] [autoit][/autoit] [autoit]
Exit
EndIfIf $Wurzeltest > 0 And Not "" Then
[/autoit] [autoit][/autoit] [autoit]$Ergebnis = Sqrt($Wurzeltest)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "Ergebnis der Wurzel", "Die Wurzel aus "&$Wurzeltest&" ist "&$Ergebnis&".")
[/autoit] [autoit][/autoit] [autoit]ElseIf $Wurzeltest < 0 And Not "" Then
[/autoit] [autoit][/autoit] [autoit]$Ergebnis = Sqrt($Wurzeltest)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "Ergebnis der Wurzel", "Die Wurzel aus "&$Wurzeltest&" ist "&$Ergebnis&".")
[/autoit] [autoit][/autoit] [autoit]If $Ergebnis = "-1.#IND" Then ; <-\
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "Ungültige Eingabe!", "-1.#IND") ; <-- warum schlägt dieser Block fehl (sprich: erscheint erst gar nicht)?
EndIf ; <-/
Else
MsgBox(0, "Ungültige Eingabe!", "Du hast nichts eingegeben."&@CR&"Probiere es erneut.")
EndIfWEnd
[/autoit]Vielen Dank im Voraus!