Heim > Backend-Entwicklung > C++ > Warum gibt „pow(10,5)' in C manchmal 9999 statt 10000 zurück?

Warum gibt „pow(10,5)' in C manchmal 9999 statt 10000 zurück?

Susan Sarandon
Freigeben: 2024-12-23 07:34:00
Original
376 Leute haben es durchsucht

Why Does `pow(10,5)` Sometimes Return 9999 Instead of 10000 in C  ?

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;
}
Nach dem Login kopieren

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; 
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage