因为double类型除法可能会有误差
int a=24,b=7; double c=a/b; printf("%.6lf",c); system("pause"); return 0; }
第二次的((double)a/b)做的呢是先把a强制转换成double,再去除以b。实际上是浮点型变量除以整型变量...
这个括号的位置不对,应该时先将a转换为double再与b运算,这样的结果就是你期望的值了,而像题目中的...
而两个int型数据相除,结果也是int型(取整),转换成double类型的时候小数部分已经变成0,而(double)a/b是把a转换成double型,再与b相除,结果是double型 举个例子:(double)(1/2),1/2的结果是0,(double)(1/2)是0.000000 (double)1/2,实际上是1.000000/2,结果是0.500000 ...
1.int 型变量占用的存储空间和机器字一样大,即 32位系统中是 4个字节; 64位系统中是 8个字节;而 double 型变量 一般占用8字节,double 型变量占用的存储空间不会小于 int 型变量。2.double 型表示的值范围要比 int 表示的值范围大,且从 double 值转换到 int 值,会进行四舍五入,从而有...
进行判断 if( (a/b) == (int)(a/b) )为真的话,当然就是可以被整除了
public class average_double { public static void main(String[] args) { float[] arr = new float[]{45.0f, 54.0f, 98.0f}; System.out.println("***"); System.out.println("出现的错误的方式"+test1(arr)); System.out.println("***"); System.out.println("完美解决的方法...
除法运算中 A:double (a/b) 即 double(1/3)即 double(0)即 0.0 B:double (a) / b ...
因为整数除法会将结果的小数部分抹去,之后再转成double已经无济于事,在除之前先转为double才能得到正确...