MSP2013 - Probleme mit Variable

Gast #958989
Lesenswert?

Hallo,

ich habe momentan ein merkwürdiges Problem mit float Operation.

Ich verwende einen MSP2013 und programmiere diesen über das CrossStudio.

Mein Problem ist jetzt, multipliziere ich zwei statische Werte bekomme 
ich das richtige Ergebnis:
1
fValue2  = 0.0179961 * 0.0518796765163;
Ergebnis: 0.000933632 [richtig]


Multipliziere ich jetzt aber eine Variable(fValue1 = 0.0179961) mit dem 
zweiten statischen Wert, kommt ein fehlerhaftes Ergebnis heraus.
1
fValue1  = 0.44775 * 0.44775 * 0.44775 * 0.44775 * 0.44775;
2
fValue2  = fValue1 * 0.0518796765163;
Ergebnis: 0.000497699 [falsch]

Woran kann das liegen? Die Variablen sind als float deklariert und 
initialisiert. Ich habe keine Ahnung was hier falsch sein soll

Danke
Moderator (Firma: Titel) Persönliche Seite #959050
Lesenswert?

Das
1
fValue2  = 0.0179961 * 0.0518796765163;
berechnet der PC (via Compiler).

Und hier
1
fValue1  = 0.44775 * 0.44775 * 0.44775 * 0.44775 * 0.44775;
2
fValue2  = fValue1 * 0.0518796765163;
stellt sich die Frage: Geht die erste Zeile schief oder die zweite.
Denn auch hier wird die erste Zeile wieder vom Compiler berechnet,
die zweite vom uC.

Wie sieht das mit anderen Float-Operationen und -Werten aus?
Addition, Subtraktion...
Gast #959059
Lesenswert?

Hey,

die zweite Zeile geht schief. Ich schaue mir dir Variablen mit dem 
Debugger an und erkenne, dass fValue1 == 0.0179961 ist. Also exakt der 
Wert, mit dem vorher statisch gerechnet wurde.

Die anderen mathematischen Operationen muss ich noch ausprobieren.

Danke und Gruss

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren