2

次のように非常に基本的な操作を実行しようとしています。

double a=21/5;
System.out.println(a);

4.0ただし、出力として取得するたびに4.2. 私はこれに初めて遭遇します。私は何年も Java を使用してきましたが、このあいまいさに遭遇したことはありません。

4

5 に答える 5

8

整数除算を使用していますが、その結果は常に整数になります。このようなものを使用する必要があります。

double a=(double)21/5;
于 2013-03-01T16:24:11.630 に答える
3

あなたは整数除算をしています...

試す:

double a = 21.0/5;
于 2013-03-01T16:25:03.157 に答える
0

除算をキャストするか、引数の 1 つを 10 進数として指定して、強制的に double として返します。

double a = (double)21/5;

-また-

double a = 21.0/5;
于 2013-03-01T16:24:34.690 に答える
0

数値の 1 つを double にキャストするだけです。

double a = 21/5.0;
于 2013-03-01T16:24:48.340 に答える
0

キャストを強制的に 2 倍にします。 double a = 21.0/5

これを算術昇格と呼びます。これは、方程式内のすべての項が、最も精度の高い変数の型と同じになることを意味します。この場合は2倍。

于 2013-03-01T16:25:30.253 に答える