374 Stimmen

Wie kann ich zwei ganze Zahlen dividieren, um ein Double zu erhalten?

Wie kann ich zwei ganze Zahlen dividieren, um einen Pasch zu erhalten?

576voto

NoahD Punkte 7622

Sie wollen die Zahlen werfen:

double num3 = (double)num1/(double)num2;

Hinweis: Wenn eines der Argumente in C# ein double , a double geteilt wird, was zu einer double . Das Folgende würde also auch funktionieren:

double num3 = (double)num1/num2;

Für weitere Informationen siehe:

Dot Net Perls

49voto

fabriciorissetto Punkte 8521

Ergänzend zur Antwort von @NoahD

Um eine höhere Genauigkeit zu erreichen, können Sie in Dezimalzahlen umwandeln:

(decimal)100/863
//0.1158748551564310544611819235

Oder:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

Double wird mit 64 Bits dargestellt, während Decimal 128 Bits verwendet.

(double)100/863
//0.11587485515643106

Ausführliche Erklärung von "Präzision"

Weitere Einzelheiten über die binäre Gleitkommadarstellung und ihre Genauigkeit finden Sie unter dieser Artikel von Jon Skeet, in dem er über folgende Themen spricht floats y doubles y diese wo er spricht über decimals .

10voto

Stephen Wrighton Punkte 34868

Die ganzen Zahlen in Doubles umwandeln.

9voto

Mark Ransom Punkte 283960

Wandeln Sie einen von ihnen zuerst in einen Doppelgänger um. Diese Form funktioniert in vielen Sprachen:

 real_result = (int_numerator + 0.0) / int_denominator

4voto

Rejwanul Reja Punkte 1111
var firstNumber=5000,
secondeNumber=37;

var decimalResult = decimal.Divide(firstNumber,secondeNumber);

Console.WriteLine(decimalResult );

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X