如何将两个整数除以得到一个双精度?

时间:2009-03-19 04:09:23

标签: c# math

如何将两个整数除以得到一个双精度?

7 个答案:

答案 0 :(得分:383)

您想要投射数字:

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

注意:如果C#中的任何参数是double,则使用double除法,得到double。所以,以下也适用:

double num3 = (double)num1/num2;

有关详细信息,请参阅:

Dot Net Perls

答案 1 :(得分:25)

补充@ NoahD的回答

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

(decimal)100/863
//0.1158748551564310544611819235

或者:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

表示分配64位,而十进制使用128

(double)100/863
//0.11587485515643106

" precision"

的深入解释

有关二进制中浮点表示的更多详细信息及其精确度,请查看Jon Skeet的this article,其中他谈到floatsdoubles以及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 即可,然后计算就可以了。