Heim > Backend-Entwicklung > C++ > Wie vermeide ich das Abschneiden ganzer Zahlen bei der C-Float-Division?

Wie vermeide ich das Abschneiden ganzer Zahlen bei der C-Float-Division?

DDD
Freigeben: 2024-11-11 21:06:03
Original
1041 Leute haben es durchsucht

How to Avoid Integer Truncation in C   Float Division?

So erzeugen Sie ein Float-Ergebnis aus einer Ganzzahldivision

In C schneidet die Ganzzahldivision das Ergebnis ab, selbst wenn die Ausgabe a zugewiesen ist Float-Variable. Um diese Kürzung zu verhindern, müssen die Operanden explizit in Gleitkommazahlen umgewandelt werden:

float ans = (float)a / (float)b;
Nach dem Login kopieren

In diesem Code:

  • a und b sind Ganzzahlen und ans ist eine Gleitkommazahl.
  • Der Ausdruck (a / b) führt eine Ganzzahldivision durch und das Ergebnis wird auf eine Ganzzahl (3) gekürzt.
  • Die Umwandlung (float)a wandelt a in eine Gleitkommazahl (10,0) um.
  • Die Umwandlung (float)b wandelt b in ein Float (3.0) um.
  • Der Ausdruck ((float)a / (float)b) führt eine Gleitkommadivision durch und erzeugt ein Float-Ergebnis (3.000). ).
  • Dieses Ergebnis wird dann ans zugewiesen.

Durch die Umwandlung der Operanden in Gleitkommazahlen bleibt die Ausgabe der Division als Gleitkommazahl erhalten, was zu der gewünschten Genauigkeit führt:

3
3.333
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie vermeide ich das Abschneiden ganzer Zahlen bei der C-Float-Division?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage