次のように非常に基本的な操作を実行しようとしています。
double a=21/5;
System.out.println(a);
4.0
ただし、出力として取得するたびに4.2
. 私はこれに初めて遭遇します。私は何年も Java を使用してきましたが、このあいまいさに遭遇したことはありません。
次のように非常に基本的な操作を実行しようとしています。
double a=21/5;
System.out.println(a);
4.0
ただし、出力として取得するたびに4.2
. 私はこれに初めて遭遇します。私は何年も Java を使用してきましたが、このあいまいさに遭遇したことはありません。
整数除算を使用していますが、その結果は常に整数になります。このようなものを使用する必要があります。
double a=(double)21/5;
あなたは整数除算をしています...
試す:
double a = 21.0/5;
除算をキャストするか、引数の 1 つを 10 進数として指定して、強制的に double として返します。
double a = (double)21/5;
-また-
double a = 21.0/5;
数値の 1 つを double にキャストするだけです。
double a = 21/5.0;
キャストを強制的に 2 倍にします。
double a = 21.0/5
これを算術昇格と呼びます。これは、方程式内のすべての項が、最も精度の高い変数の型と同じになることを意味します。この場合は2倍。