@robodriver
zu 1: so was hätte ich nie für möglich gehalten, aber man lernt eben nie aus zum glück kann man es wohl abschalten, wie for_ro schreibt.

zu2: wenn x und y wirklich nur in der sub stehen, dann sollte single aber reichen: wenn man ne zahl zwischen 0 und 20 durch ne 5 stellige dezimalzahl dividiert, dann kann das ergebnis auch nur ne genauigkeit von etwa 5 bis 6 stellen haben, oder? wie auch immer, es spricht ja auser speicherplatz und rechengeschwindigkeit erst mal nix gegen die verwendung von double.

zu3: naja, das ist eher ein genereller tip. es ist einfach kontraproduktiv jemanden der nen fehler suchen soll von anfang an in ne bestimmte richtung zu lenken. in dem fall ists ja prima, wenn die variablen sonst nirgens auftauchen. aber das haben schon viele leute geglaubt, bis sie später irgendwo nen tipfehler in ihrem programm gefunden haben
auserdem sieht die sub ja eigentlich ganz ok aus, da liegts nahe nach irgendwelchen unerwünschten seiteneffekten zu suchen.

zu4: ja, so meinte ich das. aber ich hätte die konstante auch noch vorher in ne double variable gespeichert.

zu5: na dann weist du jetzt schon mal, das bereits die berechnung fehlschlägt und das problem nicht erst beim umwandeln in den string bzw. die übergabe an lcd stattfindet!
ich hätte zwar jetzt nicht vermutet, das es mit single besser geht als mit double, aber es wundert mich auch nicht. möglicherweise wandelt Bascom die konstante in nen single und bekommt dann probleme weil die division zwischen verschiedenen typen stattfindet. Bascom ist eben nicht vergleichbar mit nem compiler wie gcc. da gibt es immer die möglichkeit, das der compiler nen fehler hat (oder so schlecht dokumentiert ist, das es zu mißverständnissen kommt) ich hab z.b. in der Bascom doku gelesen, das operanten einer arithm. operation immer gleichen typ haben müssen. an anderer stelle steht, das die operation immer im typ des ergebnisses ausgeführt wird. das widerspricht sich teilweise bzw. ist unklar formuliert. dazu kommt, dass double wohl eher selten verwendet wird, und deshalb compilerfehler in dem zusammenhang nicht so schnell gefunden werden.

@for_ro
na einfach beide operanten erst mal einzeln ner double variable zuweisen und dann die division mit den double variablen durchführen.

ich hab mal lange in nem c/c++ programm nach nem fehler gesucht, bis mir klar wurde, das eine konstante (in nem #define) eben nicht wie ich dachte in ne 64bit integer sondern nur in ne 32bit integer umgewandelt wurde. deshalb sollte man eben #define vermeiden (keine typprüfung) aber das ist jetzt ein anderes thema.