Forum: Compiler & IDEs komplexe Berechnung


von Matthias (Gast)


Lesenswert?

Hallo zusammen!
Hab ne kleine Routine geschrieben, welche die acos-Funktion benutzt.
Ich bekommen leider kein richtiges Ergebnis.
Ich denke das liegt an den ganzen unterschiedlichen Datentypen. Trotz
casts kommt nur Müll raus.
Wenn jemand eine Lösung hat - bitte schreiben!

Hier der Codeausschnitt:

-------------------------
uint16_t temp;
temp=berechneZeit(500);
...
uint16_t berechneZeit (uint8_t bruchteil)
{
  return (uint16_t) (318*acos(2*bruchteil/100.0-1));
}
-------------------------
Viele Grüße
Matthias

von bone (Gast)


Lesenswert?

wie wär es mit der formel in ausgeschriebener form???
dann können wir dir sagen...
...was du im c-code verbockt hast

von bone (Gast)


Lesenswert?

und noch was
...ein UINT8 besteht aus 8 bits!!!
wie willst du damit ne 500 darstellen???

8bit -> zahlenraum 0..(2^8 - 1) [0..255]

von Horst (Gast)


Lesenswert?

Versuch mal als Rückgabewert nen float oder besser double.

von Simon K. (simon) Benutzerseite


Lesenswert?

Hehe. PS: Float lib nicht vergessen einzubinden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.