Rechnen mit float

Gast
Hallo Anton, Peter,

in diesem Fall ist der Schuldige schon gefunden (meiner Meinung nach)
myf = 10/50;
ergibt 0 (Null), da hier eine Ganzzahldivision durchgeführt wird. Da
ist dann natürlich 10 durch 50 gleich Null. Wenn man eine
Float-Division durchführen möchte, dann am besten mit : my = 10.0/50.0;
(myf = 10/50.0;  reicht auch).

Allgemein : Wenn bei einer Division der Nenner ganzzahlig ist, dann
wird automatisch eine Ganzzahldivision durchgeführt. Wenn man sicher
gehen will, dass auch eine Gleitkommadivsion durchgeführt wird, dann
muss man im Nenner einen Gleitkommawert verwenden (bzw. durch einen
Cast das gleiche Verhalten erzeugen).
Peter möge mich korrigieren, wenn ich falsch liege ;-).

MfG, Daniel.
Gast
danke erstmal,

das heisst, wenn ich zwei integer-Variablen durcheinander dividieren
will, muss ich die im Nenner stehende Varaible erstmal in float
konvertieren?
Gast
Hallo Anton,

wenn Du wirklich dann ein Ergebnis mit Kommastellen haben möchtest,
lautet die Antwort ja.
Beispiel :

int iA=6, iB=4;
float fErg = iA / ((float)iB);

fErg hat nun den Wert 1.5

Wenn Dich aber nur der ganzzahlige Teil der Rechnung interessiert, dann
brauchst Du keine Typumwandlung (Cast).

Beispiel :
int iA=6, iB=4;
int   iErg = iA / iB;
float fErg = iA / iB;

in iErg steht nun 1, in fErg 1.0
Meistens verwendet man keine float-Variable um ganmzzahlige Werte zu
speichern - das wäre Verschwendung von Rechenzeit und Speicherplatz.
Außerdem kann das zu Mißverständnissen beim Lesen des Codes führen.

Immer nach dem Motto arbeiten : "Das Programm schreibt man für den
Menschen - der Code für den Prozessor macht dann der Compiler !"

MfG, Daniel.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.