1.double
タイプ
Java は、double
実数 (小数) を扱うための型を提供します。8 bytes
メモリ (型の 2 倍) を占有し、から までint
の範囲の値を格納できます。比較のために、この型はから までの範囲の値を格納できます。-1.7*10308
+1.7*10308
int
-2*109
+2*109
実数の場合、小数点以下は小数点の後に書きます。たとえば、123.456、2.5、100.00、0.01 などです。コンピュータがそのような数値を扱うとき、私たちはそれらの数値を浮動小数点数と呼びます。
ちなみに、型に加えて、型(サイズはわずか 4 バイト)double
もあります。float
その名前は浮動小数点に由来します。名前のdouble
由来はdouble floatです。A は、: vs のdouble
2 倍の大きさです。倍精度浮動小数点数とも呼ばれます。float
8 bytes
4
2.double
型の作成
double 型は実数を格納するために使用されます。実数を格納できる変数をコードで作成するには、次のようなステートメントを使用する必要があります。
double name;
ここで、name は変数の名前です。例:
声明 | 説明 |
---|---|
|
実際のprice 変数が作成される |
|
実際のweight 変数が作成される |
|
実際のlightSpeed 変数が作成される |
型と同様に、短縮表現を使用して複数の変数を同時にint
作成できます。double
double name 1, name 2, name 3;
さらに、すぐに値を代入することもできます。
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
例:
声明 | ノート |
---|---|
|
変数ストア5.0 |
|
変数ストア2.0 |
|
3. 整数と実数の代入
int
整数が変数にのみ割り当てられ、実数が変数にのみ割り当てられるのは問題ですdouble
。2 種類の数値の間で変換できるようにしたいと考えています。Java はこの機能を提供します。
まず、実数と整数の両方をdouble
変数に割り当てることができます。整数を割り当てる場合は、単純に実数に変換されます。もちろん、プロセス中にある程度の精度が失われる可能性があります。
声明 | ノート |
---|---|
|
変数ストア5.0 |
|
変数ストア2.0 |
|
変数 x ストア1000000.0 |
第 2 に、整数と実数が式に含まれている場合、まず整数が実数に変換され、その後で初めて他の実数との演算が実行されます。
声明 | ノート |
---|---|
|
変数 x ストア5000.0 |
|
10 画面に番号が表示されます |
|
10.0 画面に番号が表示されます |
最後に、変数に実数を割り当てることもできますint
。これを行うと、実数の小数部分が破棄され、数値は最も近い整数に切り捨てられます。
さらに、コンパイラは、プログラマに対し、何が起こっているかを明示的に文書化することを要求します (小数部分が削除されていることを他のプログラマが確実に理解できるようにするため)。一般に、このような変換はコードでは次のようになります。
integer_variable = (int)(real_number);
例:
声明 | ノート |
---|---|
|
変数x ストア5 |
|
変数x ストア5 |
|
変数x ストア11 |
4. Java での整数と実数の除算
整数を整数で割った場合、剰余は常に破棄されます。では、どのようにして割れば得られるのでしょ5
う2
か2.5
?
最初は、次のオプションが正しいように見えます。
double d = 5 / 2;
しかし、それはそれほど単純ではありません。ここでの問題は、Java マシンが最初に の値を計算し5 / 2
、その後でその結果をd
変数に代入することです。そしてその5 / 2
演算は整数の除算です。これは、より正確には、次の内容d
が含まれることを意味します。2
2.0
正しい解決策は、除算に含まれる数値の少なくとも 1 つを実数(つまり、小数点付き) として記述することです。
double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;
それぞれの式には、次のものd
が含まれます2.5
しかし、変数を扱う場合はどうなるでしょうか? 次のようなコードがある場合はどうなるでしょうか?:
int a = 5;
int b = 2;
double d = a / b;
ここには巧妙な (そして明白な) 解決策があります。変数に 1 を実数として乗算して、Java マシンに変数を強制的に実数に変換させます ( 1.0
)
int a = 5;
int b = 2;
double d = a * 1.0 / b;
乗算と除算は同じ優先順位を持ち、左から右に実行されることに注意してください。つまり、1.0 をどこで掛けるかが重要になります。
例:
声明 | 実行の順序 | 結果 |
---|---|---|
|
(1.0 * a) / b; |
2.5 |
|
(a * 1.0) / b; |
2.5 |
|
(a / b) * 1.0; |
2.0 |
GO TO FULL VERSION