Zwei häufige Fehler in der Fließkomma-Arithmetik in C

In diesem Lernprogramm werden zwei Regeln erläutert, die bei der Ausführung der Gleitkomma-Arithmetik in C beachtet werden müssen. Durch das Befolgen dieser Regeln wird ein Informationsverlust verhindert. Beispiele mit ausführlicher Erklärung.

1. Regel: Wenn ein arithmetischer Operator Ganzzahloperanden hat, wird eine Ganzzahloperation ausgeführt.

Lassen Sie uns ein Beispiel sehen.

#include "stdio.h"
Main()
{
Float c;
c = 5/9;
printf ("c =% f", c);
getch ();
}

In obigem Programm wird, obwohl die Variable c scheinbar Float-Datentypen zu haben scheint, c = 0,000000 ausgegeben. Der Programmierer hat wahrscheinlich mit c = 0,555556 gerechnet.

Grund: In diesem Ausdruck ist c = 5/9 der / ist der arithmetische Operator. 5 und 9 sind die ganzzahligen Operanden. Gemäß der 1. Regel wird eine Ganzzahloperation ausgeführt. Daher wird die Ganzzahleinteilung abgeschnitten und ein Bruchteil wird verworfen. Daher wird der Ausdruck auf 0 gekürzt.

2. Regel: Wenn ein arithmetischer Operator einen Fließkomma-Operanden und einen Ganzzahl-Operanden hat, wird die Ganzzahl in Fließkomma konvertiert, bevor die Operation ausgeführt wird.

#include "stdio.h"
Main()
{
Float c;
c = 5,0 / 9;
printf ("c =% f", c);
getch ();
}

In obigem Programm hat Variable c Float-Datentyp und Programmdrucke c = 0,555556, mit Ausnahme der Ausgabe.

Grund: in diesem Ausdruck ist c = 5,0 / 9 der / ist der arithmetische Operator, 5.0 ist Gleitkommaoperand und 9 ist Ganzzahloperand. Gemäß der 2. Regel wird der Integer-Operand vor dem Ausführen der Operation in einen Gleitkomma-Operanden umgewandelt. Der Ausdruck lautet c = 5,0 / 9,0. Der Ausdruck wird nicht abgeschnitten, da es sich um das Verhältnis zweier Fließkommawerte handelt und das Programm daher c = 0,555556 ausgibt.