Heim >Backend-Entwicklung >C++ >Warum rundet C# die Ganzzahldivision ab und wie kann ich das verhindern?

Warum rundet C# die Ganzzahldivision ab und wie kann ich das verhindern?

DDD
DDDOriginal
2025-01-05 18:18:40986Durchsuche

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

Dezimalrundung in C# verstehen

Beim Durchführen von Divisionen in C# kann es vorkommen, dass das Ergebnis unerwartet abgerundet wird. Dieses Verhalten ist auf die Ganzzahldivision zurückzuführen, die die Standardoperation zum Dividieren ganzer Zahlen ist, wie im Beispiel:

double i;
i = 200 / 3;

In diesem Fall ist das Ergebnis 66, obwohl das tatsächliche Divisionsergebnis 66,66666~ ist . Um dieses Abrunden zu vermeiden, können Sie alternative Divisionstechniken anwenden.

Ein Ansatz besteht darin, einen der Operanden explizit in ein Double umzuwandeln und so die Division mit dem Double-Divisionsoperator zu erzwingen:

i = (double)200 / 3;

Alternativ können Sie eine der Konstanten als Double deklarieren:

i = 200.0 / 3;

Oder Sie können das Suffix d verwenden, um a anzugeben Doppelliteral:

i = 200d / 3;

Indem Sie eine der Konstanten als Double deklarieren, stellen Sie sicher, dass der Doppeldivisionsoperator verwendet wird, wodurch Ganzzahlrundungen verhindert und der Dezimalwert erhalten bleibt.

Das obige ist der detaillierte Inhalt vonWarum rundet C# die Ganzzahldivision ab und wie kann ich das verhindern?. 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