Peter,K. schrieb:
> hallo
>
> ich will km/h in m/s umrechnen
>
> z.b
>
> 1km/h sind 0,277777 m/s
>
> wie kann ich dies am besten mit den avr rechnen ohne kommaberechnung.
>
> habe gedacht 1km/h * 100 /36 =2,77 also 2 als int.
Zu kleiner Skalierungsfaktor, da hast Du ja schon 33% Fehler drin.
Größer denken... ;-)
Oder (1km/h * 100 + 18)/36 = 3,28 also 3 als int.
> nun m/s in km/h 2*36/100 =0,7 also 0 als int.
>
> so gehts warscheinlich nicht.
Skalier das ganze passend. Rechne es z.B. in Millimetern (und in long).
1000000 mm/h / 3600 = 277 mm/sec, der Fehler ist unter 0.5%, nicht dass
es helfen würde.
Weil:
(277 mm/sec * 3600) / 1000000 = 0 km/h (integer)
Und:
(278 mm/sec * 3600) / 1000000 = 1 km/h (integer)
Du kannst nicht erwarten dass Du das beliebig hin- und herkonvertieren
kannst (auch bei float und double übrigens nicht). Jedenfalls nicht für
die kleinsten Werte, der Fehler nimmt für höhere Geschwindigkeiten ab.
Passend runden könnte helfen, z.B. 2,77 oben sollte ganz klar 3 ergeben,
aber das gleitet dann schnell in die höhere Numerik ab.