0

私のコードでは、数値の除算を実行し、それを double 変数に格納しています。しかし、変数は 1 つの精度で返されます。精度を上げたいのですが、どうすればそれができますか。

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までは精度上げたい。

4

3 に答える 3

6

使用する

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

そのままでは、整数除算を使用して 2 つの整数を除算し、結果の int を double に代入しています。オペランドの 1 つを double にキャストすると、代わりに double の除算が行われます。

于 2012-12-16T17:04:35.290 に答える
2

intを別のもので割ると、倍精度intでない値が得られます。int試す

x = (double) w[i] / l[i];
于 2012-12-16T17:04:30.063 に答える
-1
System.out.printf("%10.4f", x);

正確な精度を持つのは BigDecimal だけです。倍数は近似値です。

于 2012-12-16T17:05:11.857 に答える