当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何将两个整数除以得到一个双精度?》经验,为你挑选了4个好方法。

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



1> NoahD..:

你想要输出数字:

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

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

double num3 = (double)num1/num2;

有关更多信息,请参阅

Dot Net Perls


注意不要这样做: - `double num3 =(double)(num1/num2);`.这只会给你一个整数除法结果的双重表示!
@Pax,如果C或C#中的任何args是double,则使用双倍除法(导致double).
不知道C#中是否相同,但C只需要你先抛出它 - 它会自动使double/int成为double.

2> fabricioriss..:

补充@NoahD的答案

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

(decimal)100/863
//0.1158748551564310544611819235

要么:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

Double表示分配64位,而decimal表示128

(double)100/863
//0.11587485515643106

深入解释"精确"

有关二进制浮点表示,精度更多的细节来看看这篇文章从乔恩斯基特,他谈到floatsdoubles和这一个地方他谈到decimals.



3> Stephen Wrig..:

将整数转换成双打.



4> Mark Ransom..:

将其中一个转换为双倍优先.此表单适用于多种语言:

 real_result = (int_numerator + 0.0) / int_denominator

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有