Seite 1 von 1

Berechnungs (Division) Fehler

Verfasst: 14. Februar 2012 08:47
von toba
Hi,

das mag jetzt blöd klingen, aber meine Divison funktioniert nicht so wie ich es will O.o

Code: Alles auswählen

float Multiplikation = 0;
Multiplikation = 50*0.01;   //Ergebniss: 0.5

float Division = 0;
Division = 50/100;          //Ergebniss: 0

float Division2 = 0;
Division2 = 100/100;        //Ergebniss: 1
als Header sind <math.h> und <QtAlgorithmus> (brauche qSort) eingebunden.

Irgendwas muss ich doch falsch machen?! Steh grad n bissl aufm Schlauch..
Auch wenn ich mit = 0.0 initialisiere funktioniert es nicht, bzw. auch wenn ich es in einem seperatem file ausführe und nur math.h einbinde gehts nicht.

Re: Berechnungs (Division) Fehler

Verfasst: 14. Februar 2012 09:18
von brax
50/100 führt eine Division zwischen zwei int Werten aus. Das Ergebnis ist dann 0. Durch die Zuweisung an den float ändert sich dadurch nichts. Probier mal 50.0/100 aus.

Re: Berechnungs (Division) Fehler

Verfasst: 14. Februar 2012 09:25
von toba
DER GEHT!
Ich glaubs ja nicht :D

Aber irgendwie blöd immer ne .0 dranzusetzen...

Re: Berechnungs (Division) Fehler

Verfasst: 14. Februar 2012 09:39
von franzf
Es geht auch mit einer der beiden hier:

Code: Alles auswählen

float wert = 50/static_cast<float>(100);
float wert2 = static_cast<float>(50)/100;
Ist das schöner? :D

Re: Berechnungs (Division) Fehler

Verfasst: 14. Februar 2012 09:50
von toba
hmm schick :)

Ja, mir ist nun auch wieder eingefallen das das ja so sein muss..
Mir ists eigentlich nicht aufgefallen da bei mir so grob stand:
#define Prozentsatz 50

Multiplikator = Prozentsatz/100;

nun steht #define Prozentsatz 50.0 :)
Werds mir aber nun auf jedenfall wieder ins Gedächtnis setzen.