繁体   English   中英

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

[英]How can I divide two integers to get a double?

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

您要转换数字:

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

注意:如果 C# 中的任何 arguments 是double ,则使用double除法会导致double 因此,以下内容也可以使用:

double num3 = (double)num1/num2;

有关更多信息,请参阅:

点网 Perls

补充@NoahD 的答案

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

(decimal)100/863
//0.1158748551564310544611819235

或者:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

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

(double)100/863
//0.11587485515643106

深入解读“精准”

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

将整数转换为双精度数。

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

 real_result = (int_numerator + 0.0) / int_denominator
var firstNumber=5000,
secondeNumber=37;

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

Console.WriteLine(decimalResult );
var result = decimal.ToDouble(decimal.Divide(5, 2));

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

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

前任。:

var v1 = 1 / 30 //the result is 0
var v2 = 1.00 / 30.00 //the result is 0.033333333333333333

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM