Gleitkommaüberlauf?

Sticky84

Grünschnabel
Hallo zusammen,

ich habe folgende Zeile geschreiben und weiß nicht ob diese richtig ist (anscheinend nicht
sonst hätte ich ja keinen Gleitkommaüberlauf ^^)

Code:
prozentFaktor=(unsigned long) 100/GlasMenge;

Folgendes soll passieren. Der Prozentfaktor ändert sich mit der Menge des Rohstoffes der in das Gemenge hinzugeführt wird (Kalk, Pottasche, Soda etc. ).
Er ändert sich also bei jeder neuen Eingabe.
Da es passieren kann das eine Zahl mit Komma ausgegeben wird und diese natürlich ziemlich präzise sein sollte benutze ich "unsigned long" als Datentyp. Mit diesem Befehl erhalte ich nun aber einen Gleitkommaüberlauf. Nun gibt es bei der konsolenanwendung den Befehl "precision" wie lautet der hier? Damit kann ich die Nachkommastellen einschränken und würde so den Überlauf vermeiden oder?

Hier mal ein kleiner Ausschnitt.
Es gibt mehrere Checkboxen aber die haben alle die
gleiche Vorgehensweise.
Ist nicht die beste Art und Speichersparend aber ist nur zum
experementieren ^^

Code:
if(CheckBox1->Checked)
{
ergebnis= zahl1*1;
GlasoxidSand->Caption=ergebnis;
//Prozentuale Anteil im Glas
prozent= ergebnis*prozentFaktor;
ProzentSand->Caption=prozent;
}
else
{
GlasoxidSand->Caption="Kein Wert zugewiesen!";
ProzentSand->Caption="Kein Wert zugewiesen!";
}


Danke euch

Gruß Eike
 
Zurück