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 の単一フィールドが入ります。

さらにこのクラスは、doubleString に、Stringdouble に変換する各種メソッドや、double の処理時に役立つ定数およびメソッドも提供します。

コンストラクタ

Double(double value) プリミティブ double 引数を表す、新たに割り当てられる Double オブジェクトを構築します。
Double(String s) 文字列で表される double 型の浮動小数点を表す、新しく割り当てられる Double オブジェクトを構築します。

つまり、 Double クラスは double 型の変数/値、または文字列型の変数や値を受け取って、オブジェクトを作ります。

メソッド

メソッド、メンバ変数については、沢山あるので全ては紹介しません。詳細は API 仕様を直接ご確認ください。

ここに挙げたのは、次のサンプルで利用するメソッドのみです。

修飾子戻り値型メソッド概要
booleanequals(Object obj) このオブジェクトと指定されたオブジェクトを比較します。
bytebyteValue() この Double の値を、byte としてキャストすることによって、byte として返します。
shortshortValue() この Double の値を、short としてキャストすることによって、short として返します。
intintValue() この Double の整数値を、int にキャストすることによって返します。
longlongValue() この Double の long 値を、long にキャストすることによって返します。
floatfloatValue() この Double の float 値を返します。
doubledoubleValue() この Double の double 値を返します。
booleanisInfinite() この Double 値の絶対値が無限大値の場合に true を返します。
staticbooleanisInfinite(double v) 指定された数値の絶対値が無限量である場合に true を返します。
booleanisNaN() この Double 値が特別な非数 (NaN) 値の場合に true を返します。
staticbooleanisNaN(double v) 指定された数値が特別な非数 (NaN) である場合に true を返します。
staticdoubleparseDouble(String s) Double クラスの valueOf メソッドを実行した場合と同様に、指定された String が表す値に初期化された新しい double 値を返します。
StringtoString() この Double オブジェクトの String 表現を返します。
staticStringtoString(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


Copyright © 2001 SUGAI, Manabu. All Rights Reserved.
SEO [PR] !uO z[y[WJ Cu