Hallo,
ich habe hier ein Programm für einen ATMega128 geschrieben, in dem ich an einer Stelle die Quadratwurzel aus einer Float-Variablen ziehen muss. Dazu verwende ich pow(x,y) mit y = 0.5. An einer anderen Stelle muss ich einen Wert mit 0.37 potenzieren, was anscheinend einwandfrei funktioniert. Dort wird die zu potenzierende Variable aber niemals 0:
..... double hu(double h, double g) // berechnet Haugh-Units aus Eiklarhöhe h und Gewicht g { return (100 * log10(h + 7.57 - 1.7* pow(g,0.37) )); } ....
weiter unten verwende ich pow(x,0.5) als Übergabeparameter für einen Funktionsaufruf, in dem ich das Ergebnis auf eine serielle Schnittstelle ausgebe:
... printfdouble(pow(weight_v,0.5),5,1); ...
Wenn aber weight_v = 0 ist, erhalte ich als Ergebnis 1.0 Für Werte > 0 funktioniert pow(x,y) anscheinend einwandfrei.
Ist das normal?
Gruß
Stefan
hm, hab da noch eine Idee, was ist, wenn weight_v = -0.00000000000000000000000001 ??
dürfte aber nicht sein???