web-dev-qa-db-fra.com

Comment puis-je diviser deux entiers pour obtenir un double?

Comment diviser deux entiers pour obtenir un double?

238
leora

Vous voulez lancer les numéros:

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

Remarque: Si l'un des arguments de C # est un double, une division double est utilisée, ce qui donne un double. Donc, ce qui suit fonctionnerait aussi:

double num3 = (double)num1/num2;

Pour plus d'informations, voir:

Point Net Perls

394
NoahD

Compléter la réponse de @ NoahD

Pour avoir une plus grande précision, vous pouvez convertir en décimal:

(decimal)100/863
//0.1158748551564310544611819235

Ou:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

Les doubles sont représentés en allouant 64 bits tandis que les décimales en utilisent 128

(double)100/863
//0.11587485515643106

Explication approfondie de la "précision"

Pour plus de détails sur la représentation en virgule flottante en binaire et sa précision, jetez un oeil à cet article de Jon Skeet où il parle de floats et doubles et this un où il parle de decimals.

26
fabriciorissetto

jette les nombres entiers en doubles.

10
Stephen Wrighton

Convertissez l'un d'entre eux en double premier. Ce formulaire fonctionne dans plusieurs langues:

 real_result = (int_numerator + 0.0) / int_denominator
5
Mark Ransom
var firstNumber=5000,
secondeNumber=37;

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

Console.WriteLine(decimalResult );
0
Rejwanul Reja