CodeGym /Java Blog /ランダム /Javaでintをdoubleに変換する方法
John Squirrels
レベル 41
San Francisco

Javaでintをdoubleに変換する方法

ランダム グループに公開済み

Java の int 型と double 型について簡単に説明します。

intは、整数 (-25、0、1828182845 など) のプリミティブ Java 型です。この型は、32 ビットを使用して変数値を格納します。int 数値の範囲は -231 ~ 231 - 1、または同じ -2147483648 ~ 2147483647 です。Java の double 型は浮動小数点数を表し、メモリ内に 64 ビットを割り当て、型の範囲は -1.7 です。 *10308 から 1.7*10308。int の範囲を同じ形式で表すと、-2*109 до +2*109 となります。任意の数の int 型が、多数の double プリミティブ型に割り当てられたメモリに収まることは明らかだと思います。さらに、任意の整数は、小数部分がゼロの分数として表すことができます。数学の観点からは、5 = 5.0 または -57.0 = -57 であることに疑いの余地はありません。

int を double に変換する

Java の観点から見ると、double 型と int 型にも互換性があります。int から double への変換は、より大きいものからより小さいものへのキャストであるため、この種の変換では、暗黙的な型のケーシングまたは拡張が呼び出されます。Java では、int 値を double 変数に代入することで、int を double に自動的に変換できます。型キャストのコード例を見てみましょう。

public class intToDouble {
   public static void main(String[] args) {
       int myInt1 = 10;
       int myInt2 = 2147483647;
       double myDouble1, myDouble2;
       System.out.println("my integers are: " + myInt1 + ", " + myInt2);
       myDouble1 = myInt1;
       myDouble2 = myInt2;
       System.out.println("after typecasting/widening to double: " + myDouble1 + ", " + myDouble2);
   }
}
出力は次のとおりです。
私の整数は次のとおりです: 10、2147483647 タイプキャスト/倍増後: 10.0、2.147483647E9
注: ここでの E9 は 109 を意味し、科学表記と呼ばれます。また、倍精度の数値は通常、小数部分をピリオドで区切って書かれることにも注意してください。double の変数を宣言してそれに値を代入する場合、これを行う必要はありませんが、出力では double の数値には、たとえそれがゼロであっても常に小数部分が含まれます。

中立的な数値演算を使用した double への変換

さらに、Java のさまざまな型の変数に対する数値演算はすべて、型の拡張につながります。つまり、操作の結果はより幅広いタイプになります。したがって、int から double に変換するには、「ニュートラル」演算を使用できます。たとえば、int に 1.0 (倍精度の数値) を乗算するか、int に 0.0 を加算します。そのような型キャストの例を次に示します。

public class intToDouble {
   public static void main(String[] args) {
       double a = 1;  //you can also write 1.0 here. If you print it out it will be 1.0
       int b = 5, x = 7;
       System.out.println(x + 0.0);
       System.out.println(a*b);
   }
}
出力は次のとおりです。
7.0 5.0
ちなみに、double に変換できるのは int だけでなく、すべての数値プリミティブ型です。可能な変換の順序は、最小から最大まで次のとおりです。
Byte -> Short -> Char -> Int -> Long -> Float -> Double
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION