JavaTM 2 Platform
Std. Ed. v1.3

java.lang
クラス Double

java.lang.Object
  |
  +--java.lang.Number
        |
        +--java.lang.Double
すべての実装インタフェース:
Comparable, Serializable

public final class Double
extends Number
implements Comparable

Double クラスは、プリミティブ型 double の値をオブジェクトにラップします。型 double のオブジェクトには、型が double の単一フィールドが入ります。

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

導入されたバージョン:
JDK1.0
関連項目:
直列化された形式

フィールドの概要
static double MAX_VALUE
          double 型の正の最大有限値です。
static double MIN_VALUE
          double 型の正の最小値です。
static double NaN
          double 型の非数 (NaN) 値です。
static double NEGATIVE_INFINITY
          double 型の負の無限大値です。
static double POSITIVE_INFINITY
          double 型の正の無限大値です。
static Class TYPE
          プリミティブ型 double を表す Class オブジェクトです。
 
コンストラクタの概要
Double(double value)
          プリミティブ double 引数を表す、新たに割り当てられる Double オブジェクトを構築します。
Double(String s)
          文字列で表される double 型の浮動小数点を表す、新しく割り当てられる Double オブジェクトを構築します。
 
メソッドの概要
 byte byteValue()
          この Double の値を、byte としてキャストすることによって、byte として返します。
 int compareTo(Double anotherDouble)
          2 つの Double を数値的に比較します。
 int compareTo(Object o)
          この Double をほかの Object と比較します。
static long doubleToLongBits(double value)
          IEEE 754 浮動小数点の「ダブルフォーマット (double format)」ビットレイアウトに従って、指定された浮動小数点の値を表現して返します。
static long doubleToRawLongBits(double value)
          IEEE 754 浮動小数点の「ダブルフォーマット (double format)」ビットレイアウトに従って、指定された浮動小数点の値を表現して返します。
 double doubleValue()
          この Double の double 値を返します。
 boolean equals(Object obj)
          このオブジェクトと指定されたオブジェクトを比較します。
 float floatValue()
          この Double の float 値を返します。
 int hashCode()
          この Double オブジェクトのハッシュコードを返します。
 int intValue()
          この Double の整数値を、int にキャストすることによって返します。
 boolean isInfinite()
          この Double 値の絶対値が無限大値の場合に true を返します。
static boolean isInfinite(double v)
          指定された数値の絶対値が無限量である場合に true を返します。
 boolean isNaN()
          この Double 値が特別な非数 (NaN) 値の場合に true を返します。
static boolean isNaN(double v)
          指定された数値が特別な非数 (NaN) である場合に true を返します。
static double longBitsToDouble(long bits)
          指定されたビット表現に対応する倍精度浮動小数点値を返します。
 long longValue()
          この Double の long 値を、long にキャストすることによって返します。
static double parseDouble(String s)
          Double クラスの valueOf メソッドを実行した場合と同様に、指定された String が表す値に初期化された新しい double 値を返します。
 short shortValue()
          この Double の値を、short としてキャストすることによって、short として返します。
 String toString()
          この Double オブジェクトの String 表現を返します。
static String toString(double d)
          double 引数の文字列表現を作成します。
static Double valueOf(String s)
          指定された文字列が表す値に初期化される、新しい Double オブジェクトを返します。
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

POSITIVE_INFINITY

public static final double POSITIVE_INFINITY
double 型の正の無限大値です。Double.longBitsToDouble(0x7ff0000000000000L) によって返される値と同じです。

NEGATIVE_INFINITY

public static final double NEGATIVE_INFINITY
double 型の負の無限大値です。Double.longBitsToDouble(0xfff0000000000000L) によって返される値と同じです。

NaN

public static final double NaN
double 型の非数 (NaN) 値です。Double.longBitsToDouble(0x7ff8000000000000L) によって返される値と同じです。

MAX_VALUE

public static final double MAX_VALUE
double 型の正の最大有限値です。以下によって返される値と同じです。
 Double.longBitsToDouble(0x7fefffffffffffffL)
 

MIN_VALUE

public static final double MIN_VALUE
double 型の正の最小値です。Double.longBitsToDouble(0x1L) によって返される値と同じです。

TYPE

public static final Class TYPE
プリミティブ型 double を表す Class オブジェクトです。
導入されたバージョン:
JDK1.1
コンストラクタの詳細

Double

public Double(double value)
プリミティブ double 引数を表す、新たに割り当てられる Double オブジェクトを構築します。
パラメータ:
value - Double によって表される値

Double

public Double(String s)
       throws NumberFormatException
文字列で表される double 型の浮動小数点を表す、新しく割り当てられる Double オブジェクトを構築します。文字列は、valueOf メソッドと同様に double 値に変換されます。
パラメータ:
s - Double に変換する文字列
例外:
NumberFormatException - 文字列が解析可能な数値を含まない場合
関連項目:
valueOf(java.lang.String)
メソッドの詳細

toString

public static String toString(double d)
double 引数の文字列表現を作成します。以下の文字はすべて ASCII 文字です。

m または a の小数部として出力する桁数を検討してみましょう。小数部を表す桁は 1 桁以上が必要です。double 型の隣接する値から引数を一意に識別するのに最低限必要な桁数にしてください。たとえば、ゼロでない有限の引数を指定してこのメソッドで作成した 10 進値表記を x とします。この場合、dxdouble 型の最近似値でなければなりません。つまり、2 つの double 値が均等に x に近似している場合であれば、d は 2 つの値のどちらかでなければならず、有効な最下位ビットは 0 でなければなりません。

パラメータ:
d - 変換対象の double
戻り値:
この引数の文字列表現

valueOf

public static Double valueOf(String s)
                      throws NumberFormatException
指定された文字列が表す値に初期化される、新しい Double オブジェクトを返します。文字列 s は、浮動小数点値の表現と解釈され、その値を表現する Double オブジェクトが生成されて返されます。

snull の場合は、NullPointerException がスローされます。

s 内の先頭と末尾の空白文字は無視されます。s の残りの文字が、次の字句構文規則に従って、FloatValue を構成します。


 FloatValue:
 
        Signopt FloatingPointLiteral
 
ここで、Sign と FloatingPointLiteral は Java 言語仕様の 3.10.2 の定義に従います。FloatValue の形式でない場合、NumberFormatException がスローされます。そうでない場合、通常の浮動小数点表記で正確な 10 進値を表していると見なされます。この正確な 10 進値は、概念上は無限に正確なバイナリ値に変換されてから、IEEE 754 浮動小数点計算法による通常の最近似値丸め法に従って double 型に丸められます。最後に、Double クラスの新しいオブジェクトが生成されて、double 値を表します。
パラメータ:
s - 解析される文字列
戻り値:
新しく構築された Double。文字列引数で表される値に初期化されている
例外:
NumberFormatException - 文字列が解析可能な数値を含まない場合

parseDouble

public static double parseDouble(String s)
                          throws NumberFormatException
Double クラスの valueOf メソッドを実行した場合と同様に、指定された String が表す値に初期化された新しい double 値を返します。
パラメータ:
s - 解析される文字列
戻り値:
文字列引数で表される double 値
例外:
NumberFormatException - 文字列が解析可能な double 値を含まない場合
導入されたバージョン:
1.2
関連項目:
valueOf(String)

isNaN

public static boolean isNaN(double v)
指定された数値が特別な非数 (NaN) である場合に true を返します。
パラメータ:
v - 判定される値
戻り値:
引数の値が NaN である場合は true、そうでない場合は false

isInfinite

public static boolean isInfinite(double v)
指定された数値の絶対値が無限量である場合に true を返します。
パラメータ:
v - 判定される値
戻り値:
引数が正または負の無限値の場合は true、そうでない場合は false

isNaN

public boolean isNaN()
この Double 値が特別な非数 (NaN) 値の場合に true を返します。
戻り値:
このオブジェクトが表す値が NaN である場合は true、そうでない場合は false

isInfinite

public boolean isInfinite()
この Double 値の絶対値が無限大値の場合に true を返します。
戻り値:
このオブジェクトが表す値が無限大または無限小である場合は true、そうでない場合は false

toString

public String toString()
この Double オブジェクトの String 表現を返します。このオブジェクトが表すプリミティブの double 値は、引数が 1 つの toString メソッドによる変換とまったく同じように文字列に変換されます。
オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの String 表現
関連項目:
toString(double)

byteValue

public byte byteValue()
この Double の値を、byte としてキャストすることによって、byte として返します。
オーバーライド:
クラス Number 内の byteValue
導入されたバージョン:
JDK1.1

shortValue

public short shortValue()
この Double の値を、short としてキャストすることによって、short として返します。
オーバーライド:
クラス Number 内の shortValue
導入されたバージョン:
JDK1.1

intValue

public int intValue()
この Double の整数値を、int にキャストすることによって返します。
オーバーライド:
クラス Number 内の intValue
戻り値:
このオブジェクトが表す double 値の int 型に変換された値

longValue

public long longValue()
この Double の long 値を、long にキャストすることによって返します。
オーバーライド:
クラス Number 内の longValue
戻り値:
このオブジェクトが表す double 値の long 型に変換された値

floatValue

public float floatValue()
この Double の float 値を返します。
オーバーライド:
クラス Number 内の floatValue
戻り値:
このオブジェクトが表す double 値の float 型に変換された値
導入されたバージョン:
JDK1.0

doubleValue

public double doubleValue()
この Double の double 値を返します。
オーバーライド:
クラス Number 内の doubleValue
戻り値:
このオブジェクトが表す double

hashCode

public int hashCode()
この Double オブジェクトのハッシュコードを返します。計算された結果は、doubleToLongBits(double) メソッドの結果とまったく同じように、この Double オブジェクトが表すプリミティブ double 値の long 整数をビット表現した上位 32 ビットと下位 32 ビットの排他的論理和になります。つまり、ハッシュコードは次の式の値です。
 (int)(v^(v>>>32))
 
ただし、v は次の式によって定義されます。
 long v = Double.doubleToLongBits(this.doubleValue());
 
オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値

equals

public boolean equals(Object obj)
このオブジェクトと指定されたオブジェクトを比較します。引数が null でなく、かつ、このオブジェクトが表す double のビットパターンと同じビットパターンを持つ double を表す Double オブジェクトである場合にだけ、結果が true になります。この目的では、doubleToLongBits(double) メソッドが 2 つの double 値のそれぞれに適用されるときに同じ long 値を返す場合にだけ、2 つの値は同じと見なされます。

ほとんどの場合、Double クラスの d1 および d2 という 2 つのインスタンスについて、d1.equals(d2) の値が true になるのは、次の式の値が true になる場合だけです。

   d1.doubleValue() == d2.doubleValue()
 

しかし、例外事項も 2 つあります。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 比較対象のオブジェクト
戻り値:
オブジェクトが同じである場合は true、そうでない場合は false

doubleToLongBits

public static long doubleToLongBits(double value)
IEEE 754 浮動小数点の「ダブルフォーマット (double format)」ビットレイアウトに従って、指定された浮動小数点の値を表現して返します。

ビット 63 (マスク 0x8000000000000000L によって選択されるビット) は、浮動小数点の符号を表します。ビット 62-52 (マスク 0x7ff0000000000000L によって選択されるビット) は、指数を表します。ビット 51-0 (マスク 0x000fffffffffffffL によって選択されるビット) は、浮動小数点の有効値 (仮数と呼ばれる場合もある) を表します。

引数が正の無限大値の場合は、0x7ff0000000000000L が返されます。

引数が負の無限大値の場合は、0xfff0000000000000L が返されます。

引数が NaN の場合は、0x7ff8000000000000L が返されます。

どの場合も、返される値は long 整数であり、longBitsToDouble(long) メソッドを指定すると、doubleToLongBits への引数に等しい浮動小数点値になります。

パラメータ:
value - 倍精度の浮動小数点値
戻り値:
浮動小数点値を表すビット

doubleToRawLongBits

public static long doubleToRawLongBits(double value)
IEEE 754 浮動小数点の「ダブルフォーマット (double format)」ビットレイアウトに従って、指定された浮動小数点の値を表現して返します。

ビット 63 (マスク 0x8000000000000000L によって選択されるビット) は、浮動小数点の符号を表します。ビット 62-52 (マスク 0x7ff0000000000000L によって選択されるビット) は、指数を表します。ビット 51-0 (マスク 0x000fffffffffffffL によって選択されるビット) は、浮動小数点の有効値 (仮数と呼ばれる場合もある) を表します。

引数が正の無限大値の場合は、0x7ff0000000000000L が返されます。

引数が負の無限大値の場合は、0xfff0000000000000L が返されます。

引数が NaN の場合、返される値は実際の NaN 値を示す long 整数です。doubleToLongBits メソッドとは異なり、doubleToRawLongBits メソッドは、NaN 値を縮小しません。

どの場合も、返される値は long 整数であり、longBitsToDouble(long) メソッドを指定すると、doubleToRawLongBits への引数に等しい浮動小数点値になります。

パラメータ:
value - 倍精度の浮動小数点値
戻り値:
浮動小数点値を表すビット

longBitsToDouble

public static double longBitsToDouble(long bits)
指定されたビット表現に対応する倍精度浮動小数点値を返します。引数は、IEEE 754 浮動小数点の「倍精度 (double precision)」ビットレイアウトに従う浮動小数点値の表現と見なされます。浮動小数点値が、結果として返されます。

引数が 0x7ff0000000000000L の場合は、正の無限大値が返されます。

引数が 0xfff0000000000000L の場合は、負の無限大値が返されます。

引数が 0x7ff0000000000001L0x7fffffffffffffffL の範囲、あるいは 0xfff0000000000001L0xffffffffffffffffL の範囲にある場合、NaN が返されます。IEEE 754 にある double 型のすべての NaN 値は、事実上、Java 言語では NaN という単一の値にまとめられます。Double.doubleToRawLongBits メソッドを使ってアクセス可能なのは、NaN の個別の値に限られます。

そのほかの場合では、se、および m の 3 つの値について次の引数から計算できるとします。

 int s = ((bits >> 63) == 0) ? 1 : -1;
 int e = (int)((bits >> 52) & 0x7ffL);
 long m = (e == 0) ?
                 (bits & 0xfffffffffffffL) << 1 :
                 (bits & 0xfffffffffffffL) | 0x10000000000000L;
 
この場合、浮動小数点値の結果は、数式 s·m·2e-1075 の値と等しくなります。
パラメータ:
bits - long 整数
戻り値:
同じビットパターンを持つ double 浮動小数点値

compareTo

public int compareTo(Double anotherDouble)
2 つの Double を数値的に比較します。このメソッドによる比較は、Java 言語の数値比較演算子 (<、<=、==、>=、>) をプリミティブ double 値に適用した場合とは、次の 2 点で異なります。 これにより、このメソッドからその動作を継承する Double.compareTo(Object) では、Comparable.compareTo の一般的な規約に従い、Doubles では自然順序付けが「全体的」になります。
パラメータ:
anotherDouble - 比較対象の Double
戻り値:
anotherDouble がこの Double と同じ数値の場合は値 0。Double が anotherDouble より小さい数値の場合は 0 より小さい値。Double が anotherDouble より大きい数値の場合は 0 より大きい値
導入されたバージョン:
1.2
関連項目:
Comparable.compareTo(Object)

compareTo

public int compareTo(Object o)
この Double をほかの Object と比較します。指定された Object が Double の場合、この関数の動作は compareTo(Double) と同じです。そうでない場合、ClassCastException がスローされます。これは、Double の比較は Double 同士でしか行えないためです。
定義:
インタフェース Comparable 内の compareTo
パラメータ:
o - 比較対象の Object
戻り値:
引数がこの Double と同じ数値の Double の場合は値 0。引数がこの Double より大きい数値の場合は値 0 より小さい値。引数がこの Double より小さい数値の場合は 0 より大きい値
例外:
ClassCastException - 引数が Double ではない場合
導入されたバージョン:
1.2
関連項目:
Comparable

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.