How can I divide two integers to get a double?

2018-12-31 19:24发布

问题:

How do I divide two integers to get a double?

回答1:

You want to cast the numbers:

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

Note: If any of the arguments in C# is a double, a double divide is used which results in a double. So, the following would work too:

double num3 = (double)num1/num2;

For more information see:

Dot Net Perls



回答2:

Complementing the @NoahD\'s answer

To have a greater precision you can cast to decimal:

(decimal)100/863
//0.1158748551564310544611819235

Or:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

Double are represented allocating 64 bits while decimal uses 128

(double)100/863
//0.11587485515643106

In depth explanation of \"precision\"

For more details about the floating point representation in binary and its precision take a look at this article from Jon Skeet where he talks about floats and doubles and this one where he talks about decimals.



回答3:

cast the integers to doubles.



回答4:

Convert one of them to a double first. This form works in many languages:

 real_result = (int_numerator + 0.0) / int_denominator


回答5:

var firstNumber=5000,
secondeNumber=37;

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

Console.WriteLine(decimalResult );


标签: c# math