在java中将两个整数除以double

时间:2013-09-30 09:18:02

标签: java int double divide

我可以看到这是新程序员的常见问题,但是我没有成功实现我的代码的任何解决方案。基本上我想划分w和v,它必须保存为双变量。但它打印[0.0,0.0,...,0.0]

public static double density(int[] w, int[] v){
double d = 0;
    for(L = 0; L < w.length; L++){
        d = w[L]  /v[L];
    }
    return d;
}

3 个答案:

答案 0 :(得分:31)

这一行d = w[L] /v[L];通过几个步骤进行

d = (int)w[L]  / (int)v[L]
d=(int)(w[L]/v[L])            //the integer result is calculated
d=(double)(int)(w[L]/v[L])    //the integer result is cast to double

换句话说,在你强制转换为double之前精度已经消失,你需要先强制转换为双倍,所以

d = ((double)w[L])  / (int)v[L];

这会强制java在整个过程中使用双数学,而不是使用整数数学然后在结尾处转换为double

答案 1 :(得分:3)

Actaully w[L]/v[L]这里都是整数,在除法运算中它松散精度并且被赋予integer值,后者被称为integer被转换为double

解决方案是将操作数或除数或两者转换为double,除法运算将产生十进制值。

d = w[L]/(double)v[L];

答案 2 :(得分:2)

使用如下

    d = (double) w[L]  /v[L];