|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.lang.Number | +--java.lang.Double
Double クラスは、プリミティブ型 double
の値をオブジェクトにラップします。型 double
のオブジェクトには、型が double
の単一フィールドが入ります。
さらにこのクラスは、double
を String
に、String
を double
に変換する各種メソッドや、double
の処理時に役立つ定数およびメソッドも提供します。
フィールドの概要 | |
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 |
フィールドの詳細 |
public static final double POSITIVE_INFINITY
double
型の正の無限大値です。Double.longBitsToDouble(0x7ff0000000000000L)
によって返される値と同じです。public static final double NEGATIVE_INFINITY
double
型の負の無限大値です。Double.longBitsToDouble(0xfff0000000000000L)
によって返される値と同じです。public static final double NaN
double
型の非数 (NaN) 値です。Double.longBitsToDouble(0x7ff8000000000000L)
によって返される値と同じです。public static final double MAX_VALUE
double
型の正の最大有限値です。以下によって返される値と同じです。
Double.longBitsToDouble(0x7fefffffffffffffL)
public static final double MIN_VALUE
double
型の正の最小値です。Double.longBitsToDouble(0x1L)
によって返される値と同じです。public static final Class TYPE
コンストラクタの詳細 |
public Double(double value)
double
引数を表す、新たに割り当てられる Double
オブジェクトを構築します。value
- Double
によって表される値public Double(String s) throws NumberFormatException
double
型の浮動小数点を表す、新しく割り当てられる Double
オブジェクトを構築します。文字列は、valueOf
メソッドと同様に double
値に変換されます。s
- Double
に変換する文字列NumberFormatException
- 文字列が解析可能な数値を含まない場合valueOf(java.lang.String)
メソッドの詳細 |
public static String toString(double d)
double
引数の文字列表現を作成します。以下の文字はすべて ASCII 文字です。
-
' ('-
')。符号が正の場合、変換後の文字列に符号文字は表示されない。絶対値 m については、次のとおり。
"Infinity"
という文字列で表す。つまり、正の無限大は "Infinity"
、負の無限大は "-Infinity"
となる
"0.0"
という文字列で表す。つまり、負のゼロは "-0.0"
、正のゼロは "0.0"
となる
'.'
(.
)、m の小数部を表す 1 桁以上の 10 進数がこの順で並んだ形で表現される
Integer.toString(int)
から返されたとおり、a の整数部である 1 桁の 10 進数、'.'
(.
)、a の小数部を表す 10 進数、文字 'E'
(E
)、n を表す 10 進整数がこの順で並んだ形で表現される
m または a の小数部として出力する桁数を検討してみましょう。小数部を表す桁は 1 桁以上が必要です。double
型の隣接する値から引数を一意に識別するのに最低限必要な桁数にしてください。たとえば、ゼロでない有限の引数を指定してこのメソッドで作成した 10 進値表記を x とします。この場合、d は x の double
型の最近似値でなければなりません。つまり、2 つの double
値が均等に x に近似している場合であれば、d は 2 つの値のどちらかでなければならず、有効な最下位ビットは 0
でなければなりません。
d
- 変換対象の double
public static Double valueOf(String s) throws NumberFormatException
Double
オブジェクトを返します。文字列 s
は、浮動小数点値の表現と解釈され、その値を表現する Double
オブジェクトが生成されて返されます。
s
が null
の場合は、NullPointerException
がスローされます。
s 内の先頭と末尾の空白文字は無視されます。s
の残りの文字が、次の字句構文規則に従って、FloatValue を構成します。
ここで、Sign と FloatingPointLiteral は Java 言語仕様の 3.10.2 の定義に従います。FloatValue の形式でない場合、FloatValue: Signopt FloatingPointLiteral
NumberFormatException
がスローされます。そうでない場合、通常の浮動小数点表記で正確な 10 進値を表していると見なされます。この正確な 10 進値は、概念上は無限に正確なバイナリ値に変換されてから、IEEE 754 浮動小数点計算法による通常の最近似値丸め法に従って double
型に丸められます。最後に、Double
クラスの新しいオブジェクトが生成されて、double
値を表します。s
- 解析される文字列Double
。文字列引数で表される値に初期化されているNumberFormatException
- 文字列が解析可能な数値を含まない場合public static double parseDouble(String s) throws NumberFormatException
Double
クラスの valueOf
メソッドを実行した場合と同様に、指定された String
が表す値に初期化された新しい double 値を返します。s
- 解析される文字列NumberFormatException
- 文字列が解析可能な double 値を含まない場合valueOf(String)
public static boolean isNaN(double v)
v
- 判定される値true
、そうでない場合は false
public static boolean isInfinite(double v)
v
- 判定される値true
、そうでない場合は false
public boolean isNaN()
true
、そうでない場合は false
public boolean isInfinite()
true
、そうでない場合は false
public String toString()
double
値は、引数が 1 つの toString
メソッドによる変換とまったく同じように文字列に変換されます。Object
内の toString
String
表現toString(double)
public byte byteValue()
Number
内の byteValue
public short shortValue()
Number
内の shortValue
public int intValue()
Number
内の intValue
double
値の int
型に変換された値public long longValue()
Number
内の longValue
double
値の long
型に変換された値public float floatValue()
Number
内の floatValue
double
値の float
型に変換された値public double doubleValue()
Number
内の doubleValue
double
値public int hashCode()
Double
オブジェクトのハッシュコードを返します。計算された結果は、doubleToLongBits(double)
メソッドの結果とまったく同じように、この Double
オブジェクトが表すプリミティブ double
値の long 整数をビット表現した上位 32 ビットと下位 32 ビットの排他的論理和になります。つまり、ハッシュコードは次の式の値です。
ただし、(int)(v^(v>>>32))
v
は次の式によって定義されます。
long v = Double.doubleToLongBits(this.doubleValue());
Object
内の hashCode
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 つあります。
d1
と d2
の両方が Double.NaN
を表し、Double.NaN==Double.NaN
の値が false
であるにもかかわらず、equals
メソッドが true
を返す場合
d1
が +0.0
を表し、d2
が -0.0
を表すか、あるいは d1
が -0.0
を表し、d2
が +0.0
を表す場合で、+0.0==-0.0
の値が true
であるにもかかわらず、equal
テストの値が false
の場合。これによりハッシュテーブルが適切に機能する。
Object
内の equals
obj
- 比較対象のオブジェクトtrue
、そうでない場合は false
public static long doubleToLongBits(double value)
ビット 63 (マスク 0x8000000000000000L
によって選択されるビット) は、浮動小数点の符号を表します。ビット 62-52 (マスク 0x7ff0000000000000L
によって選択されるビット) は、指数を表します。ビット 51-0 (マスク 0x000fffffffffffffL
によって選択されるビット) は、浮動小数点の有効値 (仮数と呼ばれる場合もある) を表します。
引数が正の無限大値の場合は、0x7ff0000000000000L
が返されます。
引数が負の無限大値の場合は、0xfff0000000000000L
が返されます。
引数が NaN の場合は、0x7ff8000000000000L
が返されます。
どの場合も、返される値は long
整数であり、longBitsToDouble(long)
メソッドを指定すると、doubleToLongBits
への引数に等しい浮動小数点値になります。
value
- 倍精度の浮動小数点値public static long doubleToRawLongBits(double value)
ビット 63 (マスク 0x8000000000000000L
によって選択されるビット) は、浮動小数点の符号を表します。ビット 62-52 (マスク 0x7ff0000000000000L
によって選択されるビット) は、指数を表します。ビット 51-0 (マスク 0x000fffffffffffffL
によって選択されるビット) は、浮動小数点の有効値 (仮数と呼ばれる場合もある) を表します。
引数が正の無限大値の場合は、0x7ff0000000000000L
が返されます。
引数が負の無限大値の場合は、0xfff0000000000000L
が返されます。
引数が NaN の場合、返される値は実際の NaN 値を示す long
整数です。doubleToLongBits
メソッドとは異なり、doubleToRawLongBits
メソッドは、NaN 値を縮小しません。
どの場合も、返される値は long
整数であり、longBitsToDouble(long)
メソッドを指定すると、doubleToRawLongBits
への引数に等しい浮動小数点値になります。
value
- 倍精度の浮動小数点値public static double longBitsToDouble(long bits)
引数が 0x7ff0000000000000L
の場合は、正の無限大値が返されます。
引数が 0xfff0000000000000L
の場合は、負の無限大値が返されます。
引数が 0x7ff0000000000001L
〜 0x7fffffffffffffffL
の範囲、あるいは 0xfff0000000000001L
〜 0xffffffffffffffffL
の範囲にある場合、NaN が返されます。IEEE 754 にある double
型のすべての NaN 値は、事実上、Java 言語では NaN という単一の値にまとめられます。Double.doubleToRawLongBits
メソッドを使ってアクセス可能なのは、NaN の個別の値に限られます。
そのほかの場合では、s、e、および m の 3 つの値について次の引数から計算できるとします。
この場合、浮動小数点値の結果は、数式 s·m·2e-1075 の値と等しくなります。int s = ((bits >> 63) == 0) ? 1 : -1; int e = (int)((bits >> 52) & 0x7ffL); long m = (e == 0) ? (bits & 0xfffffffffffffL) << 1 : (bits & 0xfffffffffffffL) | 0x10000000000000L;
bits
- long
整数double
浮動小数点値public int compareTo(Double anotherDouble)
<、<=、==、>=、>
) をプリミティブ double 値に適用した場合とは、次の 2 点で異なります。
Double.NaN
は、それ自体と等しく、ほかのすべての double 値 (Double.POSITIVE_INFINITY
を含む) より大きいと見なされる
0.0d
は、-0.0d
よりも大きいと見なされる
anotherDouble
- 比較対象の Double
anotherDouble
がこの Double と同じ数値の場合は値 0
。Double が anotherDouble
より小さい数値の場合は 0
より小さい値。Double が anotherDouble
より大きい数値の場合は 0
より大きい値Comparable.compareTo(Object)
public int compareTo(Object o)
compareTo(Double)
と同じです。そうでない場合、ClassCastException
がスローされます。これは、Double の比較は Double 同士でしか行えないためです。Comparable
内の compareTo
o
- 比較対象の Object
0
。引数がこの Double より大きい数値の場合は値 0
より小さい値。引数がこの Double より小さい数値の場合は 0
より大きい値ClassCastException
- 引数が Double
ではない場合Comparable
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.