我在网站上找不到这些规则(肯定是因为我用谷歌搜索了错误的东西),所以我在这里询问。
将整型除以整型并存储在双精度型中总是首先存储四舍五入的整数。我所能找到的唯一方法是在除法之前将两个值都转换为双精度。一定有更好的办法。
另外,返回类型的规则在哪里?
发布于 2012-01-04 23:45:40
在编程语言中,有两种类型的操作:
Operations
如果两个操作数是整数类型,则执行整数运算。
如果两个操作数中的任何都是浮点类型,则浮点运算将被执行。
因此,:
Int / Int --------> int
Double / Int -----> Double
Double / Double --> Double发布于 2012-01-04 23:43:48
实际上,不会有更好的方法。将整型除以整型得到整型。因此,假设您除以5/2 --因为2和3之间没有整数,所以您得到2。如果您想要一个浮点结果,您需要将其中一个设为浮点类型;而不是
int f=5, t=2;
double result;
result = f/t;搞定
result = f / (double) t ;使用类型转换来告诉它“我想要浮点除法该死!”
发布于 2012-01-04 23:45:48
您只需强制转换一个参数即可使结果为双精度
int a,b;
double d = (double) a / b;一种更简单的方法是从一开始就使用替身。
double a, b;
double d = a / b;double可以表示每个可能的int值,而不会出现舍入误差。
https://stackoverflow.com/questions/8729564
复制相似问题