如何将两个整数除以得到一个双精度?
答案 0 :(得分:383)
您想要投射数字:
double num3 = (double)num1/(double)num2;
注意:如果C#中的任何参数是double
,则使用double
除法,得到double
。所以,以下也适用:
double num3 = (double)num1/num2;
有关详细信息,请参阅:
答案 1 :(得分:25)
补充@ NoahD的回答
要获得更高的精度,可以转换为十进制:
(decimal)100/863
//0.1158748551564310544611819235
或者:
Decimal.Divide(100, 863)
//0.1158748551564310544611819235
表示分配64位,而十进制使用128
(double)100/863
//0.11587485515643106
有关二进制中浮点表示的更多详细信息及其精确度,请查看Jon Skeet的this article,其中他谈到floats
和doubles
以及this one其中他谈到decimals
。
答案 2 :(得分:10)
将整数转换成双打。
答案 3 :(得分:5)
将其中一个转换为双倍优先。此表单适用于多种语言:
real_result = (int_numerator + 0.0) / int_denominator
答案 4 :(得分:0)
var firstNumber=5000,
secondeNumber=37;
var decimalResult = decimal.Divide(firstNumber,secondeNumber);
Console.WriteLine(decimalResult );
答案 5 :(得分:0)
var result = decimal.ToDouble(decimal.Divide(5, 2));
答案 6 :(得分:0)
我已经完成了大部分答案,我很确定这是无法实现的。无论您尝试将两个 int 分为 double 还是 float 都不会发生。 但是您有很多方法可以进行计算,只需将它们转换为 float 或 double 即可,然后计算就可以了。