Bascom mag es nicht so sehr, wenn du eine Berechnung zusammen mit einer typenkonvertierung in einer Zeile hast.

Bei "Z1 = 597 - W" hast du W als Word und Z1 as Single. Sowas gibt gelegentlich schöne Fehler in den Ergebnissen. Mache daraus mal zwei Schritte:
Z1 = W
Z1 = 597 - Z1

Ferner fehlt es deinem Programm noch an den Angaben für Stacksize, etc.

Eine endlose IF-THEN-Kette ist der Offenbarungseid eines Programmierers Mache die zur Veranschaulichung mal eine Grafik aus Messwert und Temperatur. Da es sich hierbei annähernd um eine Gerade handelt, sollte es nicht so schwer sein, eine passende Formel zu finden.

Aber immer Stück für Stück vorgehen ... zuerst den Messwert W auf das Display geben und in Relation zu den Angaben eines "echten" Thermometers setzen und schauen, ob die Resultate stimmig sind, was die Messwertänderung bei Temperaturänderungen angeht.

Gruß MeckPommER

P.S.: möglichst 2-3 Messungen machen bei einem möglichst großen Temperaturunterschied ... und dann deine Temperaturen und Messwerte posten ... wäre doch gelacht, wenn wir daraus keine Formel hinbekommen