Am ehesten angesagt ist wohl die Lösung von PicNick. Man erweitert das ganze Zeug und rechnet mit genzen Zahlen, hier mit 32 Bit.

Als Erweiterungsfaktor bietet sich 65536 (=2^16) an, man rechnet dann also mit 16 Bit vor dem Komma und mit 16 Nachkommastellen.

Mit Ints zu rechnen ist sogar genauer, als mit floats zu rechnen! Denn ein float ist 32 Bit breit, braucht aber noch Bits für den Exponenten. Diese Exponenten-Bits werden in einer 16.16 Fixpnukt-Rechnung nicht gebraucht und tragen zur besseren Genauigkeit bei.

Das Austexten einer Fixpunkt-Rechnung ist natürlcih etwas nerviger. Aber es ist deutlich schneller und spart mächtig Code. Wenn man im Programm sonst keine Floats braucht (sind eigentlich fast immer Overkill), dann kostet die eine float-Zeile von oben mindetsens satte 1400 Bytes Flash. Das sind rund 20% des Flash! Ob man das mit #define oder als const hinschreibt ist übrigens Banane.