Wie teile ich zwei ganze Zahlen, um ein Doppel zu erhalten?
Wie teile ich zwei ganze Zahlen, um ein Doppel zu erhalten?
Antworten:
Sie möchten die Zahlen umwandeln:
double num3 = (double)num1/(double)num2;
Hinweis: Wenn eines der Argumente in C # a ist double, wird eine doubleDivision verwendet, die zu a führt double. Folgendes würde also auch funktionieren:
double num3 = (double)num1/num2;
Weitere Informationen finden Sie unter:
double num3 = (double)(num1/num2);. Dies gibt Ihnen nur eine doppelte Darstellung des Ergebnisses der Ganzzahldivision!
doublestatt float? Ich kann die Fragen sehen, doubleaber ich bin trotzdem neugierig.
doubleund nicht float. Wenn Sie eine Variable genau wie schreiben var a = 1.0;, ist diese 1.0 immer eine double. Ich denke, das ist der Hauptgrund.
Ergänzung der Antwort von @ NoahD
Um eine höhere Genauigkeit zu erzielen, können Sie in Dezimalzahlen umwandeln:
(decimal)100/863
//0.1158748551564310544611819235
Oder:
Decimal.Divide(100, 863)
//0.1158748551564310544611819235
Double werden mit 64 Bit dargestellt, während Dezimal 128 verwendet
(double)100/863
//0.11587485515643106
Für weitere Details über die Gleitkommadarstellung in Binär- und seine Präzision einen Blick auf nehmen diesen Artikel von Jon Skeet , wo er darüber spricht , floatsund doublesund diese , wo er spricht decimals.
doublehat eine Genauigkeit von 53 Bit und ist ein binäres Gleitkommaformat, während decimales ein ... Dezimalformat ist, natürlich mit einer Genauigkeit von 96 Bit . Ist doublealso auf ~ 15-17 Dezimalstellen und 28-29 Dezimalstellen genau (und nicht doppelt so genau wie double). Noch wichtiger ist, verwendet decimaltatsächlich nur 102 der 128 Bits
decimals(96), sondern doubleshat 52 Bits Mantisse , nicht 53.
Wirf die ganzen Zahlen auf Doppel.
Wandle einen von ihnen zuerst in ein Double um. Dieses Formular funktioniert in vielen Sprachen:
real_result = (int_numerator + 0.0) / int_denominator
var result = 1.0 * a / b;
var firstNumber=5000,
secondeNumber=37;
var decimalResult = decimal.Divide(firstNumber,secondeNumber);
Console.WriteLine(decimalResult );
doubleund nicht decimal.