Int(Var.f) kein Integer?
Verfasst: 24.04.2018 20:24
Hallo,
es geht um folgende Zeilen:Die erste Zeile bringt (ohne Auskommentierung) die Fehlermeldung, dass der %-Operator einen Integer-Wert erwartet. Trotz Umwandlung mittels Int().
Wenn ich aber wie zwei Zeilen weiter unten den selben Ausdruck vorher in eine Variable packe, und diese Variable dann in die ansonsten identische Formel, geht es wie gedacht. Woran liegt das?
Hier noch der ganze Code (kleiner hingewurschtelter Mikrowellenumrechner)
es geht um folgende Zeilen:
Code: Alles auswählen
;PrintN(":" + Str(Round( (Int(Seconds)%60) /10, #PB_Round_Nearest)*10))
; -----------------
iSeconds= (Int(Seconds)%60)
PrintN(":" + Str(Round( iSeconds /10, #PB_Round_Nearest)*10))
;Wenn ich aber wie zwei Zeilen weiter unten den selben Ausdruck vorher in eine Variable packe, und diese Variable dann in die ansonsten identische Formel, geht es wie gedacht. Woran liegt das?
Hier noch der ganze Code (kleiner hingewurschtelter Mikrowellenumrechner)
Code: Alles auswählen
EnableExplicit
OpenConsole("Mikrowellenrechner")
#MyWatt= 600 ; Meine Mikrowelle hat 600 Watt.
Define.c WattIn, MinutesIn, SecondsIn ; Auf der Packung des Tiefkühlgerichts ist eine andere Wattzahl angegeben.
Define.f Seconds
Define.c iSeconds
Print( #CRLF$ + " Vorgegebene Leistung (Watt): " )
WattIN= Val( Input())
Print( #CRLF$ + " Vorgegebene Zeit (Minuten): " )
MinutesIn= Val( Input())
Print( #CRLF$ + " Vorgegebene Zeit (Sekunden): " )
SecondsIn= Val( Input())
Seconds = MinutesIn * 60 + SecondsIn
Seconds * (WattIn / #MyWatt)
Print( #CRLF$ + " Einzustellende Zeit: "+Str(Int(Seconds/60)))
;PrintN(":" + Str(Round( (Int(Seconds)%60) /10, #PB_Round_Nearest)*10)) ; <------------------------------------
; -----------------
iSeconds= (Int(Seconds)%60)
PrintN(":" + Str(Round( iSeconds /10, #PB_Round_Nearest)*10)) ; <------------------------------------
; --------
If GetEnvironmentVariable("PROMPT")=""
Print(#CRLF$ +" Drücke Taste zum Beenden")
Repeat:Until Inkey()
EndIf