如何将两个整数除法得到二重数?


当前回答

先将其中一个转换为double。这个表单在很多语言中都适用:

 real_result = (int_numerator + 0.0) / int_denominator

其他回答

先将其中一个转换为double。这个表单在很多语言中都适用:

 real_result = (int_numerator + 0.0) / int_denominator

将整数转换为双精度。

你想要转换数字:

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

注意:如果c#中的任何参数是双精度,则使用双除法,其结果为双精度。所以,下面的也可以:

double num3 = (double)num1/num2;

有关更多信息,请参阅:

Dot Net Perls

补充@NoahD的回答

要获得更大的精度,您可以转换为十进制:

(decimal)100/863
//0.1158748551564310544611819235

Or:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

Double表示分配64位,而decimal使用128位

(double)100/863
//0.11587485515643106

深度讲解“精准”

有关二进制浮点表示及其精度的更多细节,请参阅Jon Skeet的这篇文章,他在其中讨论了浮点数和双精度数,而这篇文章则讨论了小数。

var firstNumber=5000,
secondeNumber=37;

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

Console.WriteLine(decimalResult );