332

如何将两个整数相除以获得双精度数?

4

8 回答 8

523

您要转换数字:

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

注意:如果 C# 中的任何参数是 a doubledouble则使用一个除法,结果是 a double。因此,以下内容也可以使用:

double num3 = (double)num1/num2;

有关更多信息,请参阅:

点网 Perls

于 2009-03-19T04:14:16.297 回答
37

补充@NoahD 的答案

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

(decimal)100/863
//0.1158748551564310544611819235

或者:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

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

(double)100/863
//0.11587485515643106

深入解读“精准”

有关二进制浮点表示及其精度的更多详细信息,请查看 Jon Skeet 的这篇文章,他谈到了这篇floats文章,以及他谈到doubles的这篇文章。decimals

于 2014-12-12T18:24:12.200 回答
10

将整数转换为双精度数。

于 2009-03-19T04:12:47.080 回答
5

首先将其中一个转换为双精度。此表格适用于多种语言:

 real_result = (int_numerator + 0.0) / int_denominator
于 2009-03-19T04:12:02.620 回答
3
var firstNumber=5000,
secondeNumber=37;

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

Console.WriteLine(decimalResult );
于 2017-05-10T10:01:33.533 回答
1
var result = decimal.ToDouble(decimal.Divide(5, 2));
于 2020-12-17T13:49:25.413 回答
0

我已经完成了大多数答案,并且我很确定这是无法实现的。无论您尝试将两个 int 划分为 double 还是 float 都不会发生。但是您有很多方法可以进行计算,只需将它们转换为 float 或 double ,然后计算就可以了。

于 2020-12-25T01:18:59.827 回答
0

最简单的方法是在整数中添加小数位。

前任。:

var v1 = 1 / 30 //the result is 0
var v2 = 1.00 / 30.00 //the result is 0.033333333333333333
于 2021-12-29T21:49:33.807 回答