如何将两个整数除法得到二重数?
先将其中一个转换为double。这个表单在很多语言中都适用:
real_result = (int_numerator + 0.0) / int_denominator
将整数转换为双精度。
你想要转换数字:
double num3 = (double)num1/(double)num2;
注意:如果c#中的任何参数是double,则使用double除法,结果为double。所以,下面的也可以:
double
double num3 = (double)num1/num2;
有关更多信息,请参阅:
Dot Net Perls
补充@NoahD的回答
要获得更大的精度,您可以转换为十进制:
(decimal)100/863 //0.1158748551564310544611819235
或者:
Decimal.Divide(100, 863) //0.1158748551564310544611819235
Double表示分配64位,而decimal使用128位
(double)100/863 //0.11587485515643106
有关二进制浮点表示及其精度的更多细节,请参阅Jon Skeet的这篇文章,其中他谈到了floats和doubles和这一个,其中他谈到了decimals。
floats
doubles
decimals
var firstNumber=5000, secondeNumber=37; var decimalResult = decimal.Divide(firstNumber,secondeNumber); Console.WriteLine(decimalResult );
var result = decimal.ToDouble(decimal.Divide(5, 2));
最简单的方法是在整数上加小数点。
例:
var v1 = 1 / 30 //the result is 0 var v2 = 1.00 / 30.00 //the result is 0.033333333333333333