Problem
How can I get a double by dividing two integers?
Asked by leora
Solution #1
You’d want to roll the dice:
double num3 = (double)num1/(double)num2;
Note that in C#, if any of the parameters are doubles, a double division is performed, resulting in a double. As a result, the following would also work:
double num3 = (double)num1/num2;
More information can be found at:
Dot Net Perls
Answered by NoahD
Solution #2
Complementing the @NoahD’s answer
You can cast to decimal to get more precision:
(decimal)100/863
//0.1158748551564310544611819235
Or:
Decimal.Divide(100, 863)
//0.1158748551564310544611819235
Doubles are represented with 64 bits, while decimal is represented with 128 bits.
(double)100/863
//0.11587485515643106
Take a look at this essay by Jon Skeet on floats and doubles, as well as this one about decimals, for further information on the binary floating point representation and its precision.
Answered by fabriciorissetto
Solution #3
The integers are converted to doubles.
Answered by Stephen Wrighton
Solution #4
Convert one of them to a double first. This form can be used in a variety of languages:
real_result = (int_numerator + 0.0) / int_denominator
Answered by Mark Ransom
Solution #5
var firstNumber=5000,
secondeNumber=37;
var decimalResult = decimal.Divide(firstNumber,secondeNumber);
Console.WriteLine(decimalResult );
Answered by Rejwanul Reja
Post is based on https://stackoverflow.com/questions/661028/how-can-i-divide-two-integers-to-get-a-double