CodeGym /Java Blog /ランダム /Javaの二重キーワード
John Squirrels
レベル 41
San Francisco

Javaの二重キーワード

ランダム グループに公開済み
Java のdoubleキーワードは、他の言語と同様に、メモリ内の 64 ビット、つまり 8 バイトを占有する浮動小数点数を表すコンピュータ形式を示します。この記事では、double について説明し、いくつかの例を見ていきます。

浮動小数点とコンピューティング: 短い数学的説明

小数は固定小数点または浮動小数点のいずれかです。最初のオプションは通常の分数として表すことができ、分子 (数値そのもの) と分母 (そのスケール係数) は整数になります。たとえば、数値 2.7 はスケーリング係数 10 では 27、係数 100 では 3.14 - 314 となります。ただし、このアプローチは計算の観点からあまり正確ではないため、多くの場合、浮動小数点表現が使用されます。コンピューティングにおける浮動小数点演算は、範囲と精度の間のトレードオフをサポートする近似値としての実数の特殊な算術表現です。Java で浮動小数点数を表現するための主な形式は float と呼ばれます。名前の由来は浮動小数点です。Float は 32 ビットで、そのうち 1 ビットが符号付きビット、8 ビットが指数用、23 ビットが仮数用です。範囲は±3です。40282347E + 38F、つまり有効数字 6 ~ 7 桁。double という名前は double float に由来しています。のdouble型はfloat の2 倍の大きさです: 8 バイトと 4 バイト。倍精度実数とも呼ばれます。double 数用に予約されている 64 ビットのうち、1 ビットは符号付きビット、11 ビットは指数用、52 ビットは仮数用です。Java分数では、±1.79769313486231570E + 308、つまり有効数字 15 ~ 16 桁の数値が格納されます。 Double はより正確な形式です。したがって、非常に大きな数値を保存する必要がある場合は、floatよりもdouble を優先することをお勧めします。ちなみに、sqrt、sin、cos などの数学的メソッドやその他多くのメソッドは double 値を返します。ただし、倍精度のメモリには代償を払う必要があります。

double 変数の作成

double型実数を格納するために使用されます。実数を格納できる変数をコード内に作成するには、次のコマンドを使用する必要があります。

double name;
ここで、name は変数の名前です。

double myPrice;  //here we create a variable called myPrice
double action; //and here -- action. 
短縮表現を使用して、 double 型の複数の変数を作成することもできます。

double name1, name2, name3;

Java の double キーワードの例

Java doubleキーワードを使用して変数を作成する例をいくつか挙げてみましょう。

double myPrice = 5.0;
double height = 180;
double x = 7.1, y = 3.0;
ここで、変数myPriceの値は 5.0、変数heightの値は 180、xの値は 7.1、yの値は 3.0 です。

整数として 2 倍にする

Java では、double変数に実数と整数の両方を割り当てることができます。整数を割り当てる場合、それらは単純に実数に変換されます。ただし、若干の精度の低下が発生する可能性があります。

double height = 180;
int k = 2; 
int i = 5; 
double myDouble = k*i;
実際、height変数には数値 180.0 が格納され、myDouble変数には数値 10.0 が格納されます。

倍精度と整数の相互作用

さらに、整数と実数が何らかの式に含まれる場合、整数はまず実数に変換されてから、別の実数と相互作用します。

public class DoubleDemo {
   public static void main(String[] args) {
       int k = 2;
       double myDouble1 = 5;
       double myDouble = k*7.0;
       System.out.println(myDouble1);
       System.out.println(k*myDouble1);
       System.out.println(myDouble);
   }
}
この例では、出力は次のようになります。
5.0 10.0 14.0
数値myDouble1 は5.0 ではなく 5 として示されていますが、Java はこの数値をdoubleとして認識するため、実際には 5.0 のように見えます。int と double を乗算すると、実際にはこの数値が整数であっても、常にdoubleが得られます。double型の変数をint型の変数に割り当てることができます。これを行うには、明示的な型変換を行う必要があります。もちろん、小数部分は切り捨てられ、数値は小さい整数に切り捨てられます。

public class DoubleDemo {
   public static void main(String[] args) {
       double x = 57.789;
       int almostX;
       almostX = (int)x;
       System.out.println(almostX);
   }
}
出力は次のとおりです。
57
最後に、分割について話しましょう。これが最も興味深いことです。2 つの整数を除算すると、たとえそれらが互いに均等に割り切れなかったとしても、除算の結果として整数が得られるという事実にすでに出会ったかもしれません。

public class DoubleDemo {
   public static void main(String[] args) {
       double myDouble = 7/2;
       System.out.println(myDouble);
   }
}
結果は次のとおりです。
3.0
これは、Java マシンが最初に 2 つの整数を除算し (そして 3 を取得し)、次にこの値を double 型の変数に格納し、結果として 3.0 を取得するためです。整数ではなく通常の除算を取得するには、チートが必要です。たとえば、数値の 1 つを実数として書き込みます (その後、式全体が自動的に実数に変換されます)。整数型の変数を扱う場合は、1.0 を乗算できます。これにより値は変更されませんが、変数の型がintからdoubleに変更されます。

public class DoubleDemo {
   public static void main(String[] args) {
       double myDouble = 7.0/2;
       int x = 5;
       int y = 2;
       System.out.println(myDouble);
       System.out.println(x*1.0/y);
   }
}
出力は次のとおりです。
3.5 2.5
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION