如何将两个整数相除以获得双精度数?
mek
问问题
281168 次
8 回答
523
您要转换数字:
double num3 = (double)num1/(double)num2;
注意:如果 C# 中的任何参数是 a double
,double
则使用一个除法,结果是 a double
。因此,以下内容也可以使用:
double num3 = (double)num1/num2;
有关更多信息,请参阅:
于 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 回答