Problemer med float i Python
Jeg sidder og leger med nogle sensorere sammen med min Raspberry Pi.Koden kan ses her: http://pastebin.com/1J5RgEhy
Jeg er godt klar over, at jeg kan rydde ret meget op i koden og minimere antallet af metoder- det kommer senere. :-)
Desværre sker det ind i mellem, at sensorne giver en forkert måling. Måske hver 5. eller 6. time har den målt -0.1, selvom temperaturen er omkring 20 grader.
Problemet kan ses her: https://cosm.com/feeds/99227
Det er mest synligt i Patio.
Når en sensor aflæses, giver den data i stil med dette:
5a 01 4b 46 7f ff 06 10 a3 : crc=a3 YES
5a 01 4b 46 7f ff 06 10 a3 t=21625
Temperaturen er den sidste del. I metoden isolerer jeg 21625 og dividerer med 1000 og fjerner de sidste par decimaler. Temp = 21.6 grader.
På linje 63 og frem har jeg nogle if sætninger, hvor jeg sammenligner de målte temperaturer med min variabel "errorTemp".
Tanken er, at hvis temperaturen matcher "errorTemp", så henter den lige temperaturen forfra.
Desværre bliver fejlen aldrig fanget i If sætningen. Jeg har en idé om, at det skyldes at temperaturen er en float og selvom jeg fjerner de sidste decimaler, så figurer den fulde værdi stadigvæk i systemet et sted.
Er der en som har et bud på, hvordan jeg kan fjerne den forkerte måling?