Warum entspricht pow(10,5) 9.999 in C?
Wenn Sie die pow-Funktion in C aufrufen, um eine Leistungsoperation zu berechnen , kann der Rückgabewert möglicherweise eine Gleitkommagenauigkeit haben. In bestimmten Fällen kann das Ergebnis jedoch abgeschnitten werden, wenn es einer Ganzzahlvariablen zugewiesen wird.
Im bereitgestellten Beispiel:
const int sections = 10; for(int t= 0; t < 5; t++){ int i = pow(sections, 5- t -1); cout << i << endl; }
Die wiederholten Berechnungen von pow(Abschnitte, 5- t - 1) Die Verwendung der ganzzahligen Abschnitte und der ganzzahligen Subtraktion führt zu ganzzahligen Werten. Wenn diese Werte zur Berechnung der Leistung verwendet werden, kann das Ergebnis ein Gleitkommawert mit einem Bruchteil sein.
Das Zuweisen dieses Gleitkommawerts zur Ganzzahlvariablen i löst eine Kürzung aus. Wenn pow(Abschnitte, 5-t-1) beispielsweise 9999,9999 ergibt, wird der Bruchteil verworfen, sodass i = 9999 übrig bleibt.
Um dieses Problem zu vermeiden, können Sie die pow-Funktion direkt verwenden innerhalb der Ausgabeanweisung:
for(int t = 0; t < 5; t++){ cout << pow(sections,5-t-1) << endl; }
In diesem Fall lautet das Ergebnis von pow(sections,5-t-1). direkt gedruckt, ohne dass eine dazwischenliegende Ganzzahlvariable erforderlich ist, um sicherzustellen, dass die richtigen Werte angezeigt werden.
Das obige ist der detaillierte Inhalt vonWarum gibt „pow(10,5)' in C manchmal 9999 statt 10000 zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!