double在java中只返回一个精度

时间:2012-12-16 17:01:37

标签: java

在我的代码中,我正在执行数字划分并将其存储在双变量中。但变量只返回一个精度。我想提高精度,我怎么能这样做。

double x;
        for ( int i =0 ; i<10000 ; i++)
        {

            x= w[i] / l[i];
            System.out.println(x);
        }

在上面的代码中,w和l是整数数组;

我得到像

这样的输出
3.0
0.0
1.0
0.0

我希望将精度提高至至少4。

3 个答案:

答案 0 :(得分:6)

使用

x = ((double) w[i]) / l[i];

实际上,您使用整数除法划分两个整数,并将结果int赋值为double。将其中一个操作数转换为double会使其执行双重除法。

答案 1 :(得分:2)

如果您将int除以另一个int,则会得到int而不是双倍。尝试

x = (double) w[i] / l[i];

答案 2 :(得分:-1)

System.out.printf("%10.4f", x);

介意,只有BigDecimal具有精确的精确度。双打是近似值。