Double
クラスRevised: Jan./3rd/2002: Since: Jan./1st/2002
64 ビット浮動小数点数を表す基本データ型である double
型のラップクラスです。
java.lang.Object | +--java.lang.Number | +--java.lang.Double
API 仕様では次のように説明されています:
Double クラスは、プリミティブ型
double
の値をオブジェクトにラップします。型double
のオブジェクトには、型がdouble
の単一フィールドが入ります。さらにこのクラスは、
double
をString
に、String
をdouble
に変換する各種メソッドや、double
の処理時に役立つ定数およびメソッドも提供します。
Double(double value) |
プリミティブ double 引数を表す、新たに割り当てられる Double オブジェクトを構築します。 |
Double(String s) |
文字列で表される double 型の浮動小数点を表す、新しく割り当てられる Double オブジェクトを構築します。 |
つまり、 Double
クラスは double
型の変数/値、または文字列型の変数や値を受け取って、オブジェクトを作ります。
メソッド、メンバ変数については、沢山あるので全ては紹介しません。詳細は API 仕様を直接ご確認ください。
ここに挙げたのは、次のサンプルで利用するメソッドのみです。
修飾子 | 戻り値型 | メソッド | 概要 |
---|---|---|---|
boolean | equals(Object obj) |
このオブジェクトと指定されたオブジェクトを比較します。 | |
byte | byteValue() |
この Double の値を、byte としてキャストすることによって、byte として返します。 | |
short | shortValue() |
この Double の値を、short としてキャストすることによって、short として返します。 | |
int | intValue() |
この Double の整数値を、int にキャストすることによって返します。 | |
long | longValue() |
この Double の long 値を、long にキャストすることによって返します。 | |
float | floatValue() |
この Double の float 値を返します。 | |
double | doubleValue() |
この Double の double 値を返します。 | |
boolean | isInfinite() |
この Double 値の絶対値が無限大値の場合に true を返します。 | |
static | boolean | isInfinite(double v) |
指定された数値の絶対値が無限量である場合に true を返します。 |
boolean | isNaN() |
この Double 値が特別な非数 (NaN) 値の場合に true を返します。 | |
static | boolean | isNaN(double v) |
指定された数値が特別な非数 (NaN) である場合に true を返します。 |
static | double | parseDouble(String s) |
Double クラスの valueOf メソッドを実行した場合と同様に、指定された String が表す値に初期化された新しい double 値を返します。 |
String | toString() |
この Double オブジェクトの String 表現を返します。 | |
static | String | toString(double d) |
double 引数の文字列表現を作成します。 |
前に説明した Integer
クラス と殆ど同じですが、 double
型の非数 (Not-a-Number) NaN
と、正負の無限大 NEGATIVE_INFINITY
, POSITIVE_INFINITY
を扱えるところが新しい。 Java では、 0 割り (zero-devision) が起こっても、コンパイルエラーも例外(Exception: 実行時エラー)も起こらない。
class TestInfinite{ public static void main(String args[]){ double d1=0.5, d2=1.0/0.0; System.out.println("d1: "+d1); System.out.println(" =>"+Double.isInfinite(d1)); System.out.println("d2: "+d2); System.out.println(" =>"+Double.isInfinite(d2)); } }
ここでは、静的メソッド isInfinite()
を用いて、引数に与えた変数が発散しているかどうか判定しています。このメソッドはオーバーロードされており、引数を持たないメソッドは、 Double
型の参照型変数にラップされたオブジェクトの発散を判定します。
C:\Java>javac TestInfinite.java C:\Java>java TestInfinite d1: 0.5 =>false d2: Infinity =>true