Heim >Backend-Entwicklung >C++ >Warum wird die C#-Ganzzahldivision abgerundet und wie kann ich sie vermeiden?

Warum wird die C#-Ganzzahldivision abgerundet und wie kann ich sie vermeiden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-05 18:24:40761Durchsuche

Why Does C# Integer Division Round Down, and How Can I Avoid It?

Divisionsabrundung in C#

Bei der Division in C# können Programmierer auf unerwartetes Abrundungsverhalten stoßen. Dieses Problem tritt auf, wenn eine ganzzahlige Division durchgeführt wird, was zum Verlust von Bruchteilen führt.

Betrachten Sie zur Veranschaulichung den folgenden Code:

double i;
i = 200 / 3; // Integer division
MessageBox.Show(i.ToString());

Dieser Code zeigt ein Meldungsfeld mit dem Wert an „66“. Das erwartete Ergebnis für 200 / 3 sollte jedoch 66,66666 sein...

Lösung: Doppelte Division verwenden

Um dieses Abrunden zu vermeiden und die Gleitkommagenauigkeit beizubehalten, Man sollte die Doppeldivision anstelle der Ganzzahldivision verwenden. Dies kann erreicht werden durch:

  1. Konvertieren eines der Operanden in ein Double:
i = (double)200 / 3;
  1. Verwenden eines nachgestellten Dezimalpunkts in einem Operanden:
i = 200.0 / 3;
  1. Anhängen des d-Suffixes an eins Operand:
i = 200d / 3;

Durch die Verwendung der Doppeldivision führt der Divisionsoperator / eine Gleitkommadivision durch und behält dabei alle signifikanten Ziffern bei.

Das obige ist der detaillierte Inhalt vonWarum wird die C#-Ganzzahldivision abgerundet und wie kann ich sie vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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