|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.lang.Number java.lang.Float
public final class Float
Float
クラスは、プリミティブ型 float
の値をオブジェクト内にラップします。Float
型のオブジェクトには、float
型の単一のフィールドがあります。
さらにこのクラスは、float
を String
に、String
を float
に変換する各種メソッドや、float
の処理時に役立つ定数およびメソッドも提供します。
フィールドの概要 | |
---|---|
static int |
MAX_EXPONENT
有限の float 変数が持つ可能性のある最大指数です。 |
static float |
MAX_VALUE
float 型の正の最大有限値 (2-2-23)·2127 です。 |
static int |
MIN_EXPONENT
標準化された float 変数が持つ可能性のある最小指数です。 |
static float |
MIN_NORMAL
float 型の正の最小通常値 2-126 です。 |
static float |
MIN_VALUE
float 型の正の最小有限値 2-149 です。 |
static float |
NaN
float 型の非数 (NaN) 値を保持する定数です。 |
static float |
NEGATIVE_INFINITY
float 型の負の無限大を保持する定数です。 |
static float |
POSITIVE_INFINITY
float 型の正の無限大を保持する定数です。 |
static int |
SIZE
float 値を表すのに使われるビット数 |
static Class<Float> |
TYPE
float のプリミティブ型を表す Class インスタンス |
コンストラクタの概要 | |
---|---|
Float(double value)
float 型に変換された引数を表す、新しく割り当てられた Float オブジェクトを構築します。 |
|
Float(float value)
プリミティブな float 型の引数を表す、新しく割り当てられた Float オブジェクトを構築します。 |
|
Float(String s)
文字列で表される float 型の浮動小数点値を表す、新しく割り当てられた Float オブジェクトを構築します。 |
メソッドの概要 | |
---|---|
byte |
byteValue()
この Float の値を (byte にキャストすることにより) byte として返します。 |
static int |
compare(float f1,
float f2)
指定された 2 つの float 値を比較します。 |
int |
compareTo(Float anotherFloat)
2 つの Float オブジェクトを数値的に比較します。 |
double |
doubleValue()
この Float オブジェクトの double 値を返します。 |
boolean |
equals(Object obj)
オブジェクトと指定されたオブジェクトを比較します。 |
static int |
floatToIntBits(float value)
IEEE 754 浮動小数点の「シングルフォーマット (double format)」ビットレイアウトに従って、指定された浮動小数点の値を表現して返します。 |
static int |
floatToRawIntBits(float value)
IEEE 754 浮動小数点の「シングルフォーマット (double format)」ビットレイアウトに従って、非数 (NaN) 値を保持する、指定された浮動小数点値の表現を返します。 |
float |
floatValue()
この Float オブジェクトの float 値を返します。 |
int |
hashCode()
この Float オブジェクトのハッシュコードを返します。 |
static float |
intBitsToFloat(int bits)
指定されたビット表現と対応する float 値を返します。 |
int |
intValue()
この Float の値を (int 型にキャストすることにより) int として返します。 |
boolean |
isInfinite()
この Float 値の絶対値が無限量である場合には true を、そうでない場合には false を返します。 |
static boolean |
isInfinite(float v)
指定された数値の絶対値が無限量である場合には true を、そうでない場合には false を返します。 |
boolean |
isNaN()
この Float 値が非数 (NaN) である場合には true を、そうでない場合は false を返します。 |
static boolean |
isNaN(float v)
指定された数値が非数 (NaN) である場合には true を、そうでない場合は false を返します。 |
long |
longValue()
この Float の値を (long 型にキャストすることにより) long として返します。 |
static float |
parseFloat(String s)
Float クラスの valueOf メソッドを実行した場合と同様に、指定された String が表す値に初期化された新しい float 値を返します。 |
short |
shortValue()
この Float の値を (short にキャストすることにより) short として返します。 |
static String |
toHexString(float f)
float 引数の 16 進数文字列表現を返します。 |
String |
toString()
この Float オブジェクトの文字列表現を返します。 |
static String |
toString(float f)
float 引数の文字列表現を返します。 |
static Float |
valueOf(float f)
指定した float 値を表す Float インスタンスを返します。 |
static Float |
valueOf(String s)
文字列引数 s で表される float 値を保持する Float オブジェクトを返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
---|
public static final float POSITIVE_INFINITY
float
型の正の無限大を保持する定数です。Float.intBitsToFloat(0x7f800000)
が返す値と同じです。
public static final float NEGATIVE_INFINITY
float
型の負の無限大を保持する定数です。Float.intBitsToFloat(0xff800000)
が返す値と同じです。
public static final float NaN
float
型の非数 (NaN) 値を保持する定数です。Float.intBitsToFloat(0x7fc00000)
が返す値と同じです。
public static final float MAX_VALUE
float
型の正の最大有限値 (2-2-23)·2127 です。16 進数浮動小数点リテラル 0x1.fffffeP+127f
と同等であり、Float.intBitsToFloat(0x7f7fffff)
とも同等です。
public static final float MIN_NORMAL
float
型の正の最小通常値 2-126 です。16 進数浮動小数点リテラル 0x1.0p-126f
と同等であり、Float.intBitsToFloat(0x00800000)
とも同等です。
public static final float MIN_VALUE
float
型の正の最小有限値 2-149 です。16 進数浮動小数点リテラル 0x0.000002P-126f
と同等であり、Float.intBitsToFloat(0x1)
とも同等です。
public static final int MAX_EXPONENT
float
変数が持つ可能性のある最大指数です。Math.getExponent(Float.MAX_VALUE)
が返す値と同じです。
public static final int MIN_EXPONENT
float
変数が持つ可能性のある最小指数です。Math.getExponent(Float.MIN_NORMAL)
が返す値と同じです。
public static final int SIZE
public static final Class<Float> TYPE
float
のプリミティブ型を表す Class
インスタンス
コンストラクタの詳細 |
---|
public Float(float value)
float
型の引数を表す、新しく割り当てられた Float
オブジェクトを構築します。
value
- Float
によって表される値public Float(double value)
float
型に変換された引数を表す、新しく割り当てられた Float
オブジェクトを構築します。
value
- Float
によって表される値public Float(String s) throws NumberFormatException
float
型の浮動小数点値を表す、新しく割り当てられた Float
オブジェクトを構築します。文字列は、valueOf
メソッドを使う場合と同様にして float
値に変換されます。
s
- Float
に変換する文字列
NumberFormatException
- 文字列が解析可能な数値を含まない場合valueOf(java.lang.String)
メソッドの詳細 |
---|
public static String toString(float f)
float
引数の文字列表現を返します。次の文字はすべて ASCII 文字です。
NaN
」
-
」(「\u002D
」)。 符号が正の場合、変換後の文字列に符号文字は表示されない。絶対値 m については、次のとおり
"Infinity"
という文字列で表す。つまり、正の無限大は "Infinity"
、負の無限大は "-Infinity"
となる
"0.0"
という文字列で表す。つまり、負のゼロは "-0.0"
、正のゼロは "0.0"
となる
.
' ('\u002E'
)、m の小数部を表す 1 桁以上の 10 進数がこの順で並んだ形で表現される
Integer.toString(int)
メソッドから返されたとおり、a の整数部である 1 桁の 10 進数、「.
」(「\u002E
」)、a の小数部を表す 10 進数、文字「E
」(「\u0045
」)、n を表す 10 進整数が、この順で並んだ形で表現される
float
型の隣接する値から引数を一意に識別するのに最低限必要な桁数にしてください。たとえば、ゼロでない有限の引数 f を指定してこのメソッドで作成した 10 進値表記を x とします。この場合、f は x の float
型の最近似値である必要があります。 つまり、2 つの float
値が均等に x に近似している場合であれば、f は 2 つの値のどちらかでなければならず、有効な最下位ビットは 0
である必要があります。
浮動小数点値のローカライズされた文字列表現を作成する場合、NumberFormat
のサブクラスを使用します。
f
- 変換対象の float
public static String toHexString(float f)
float
引数の 16 進数文字列表現を返します。次の文字はすべて ASCII 文字です。
NaN
」
-
」(「\u002D
」)。 符号が正の場合、変換後の文字列に符号文字は表示されない。絶対値 m については、次のとおり
Infinity
」という文字列で表す。 つまり、正の無限大は「Infinity
」、負の無限大は「-Infinity
」となる
0x0.0p0
」という文字列で表す。 つまり、負のゼロは「-0x0.0p0
」、正のゼロは「0x0.0p0
」となる
float
値の場合は、有効数字と指数のフィールドを表すのに部分文字列が使われる。有効数字は、文字列「0x1.
」と、小数部として残りの有効数字の小文字の 16 進表現を続けて表される。すべての桁が 0 でないかぎり (すべてが 0 の場合は単一の 0 を使用) 、16 進表現の末尾の 0 は削除される。次に、指数は、指数値で Integer.toString
を呼び出して生成するときのように、「p
」とそれに続く完全な指数の 10 進数文字列で表される。
float
値の場合は、有効数字は、文字列「0x0.
」と、小数部として残りの有効数字の 16 進表現を続けて表される。16 進表現の末尾の 0 は削除されます。次に、指数は「p-126
」で表される。サブノーマル有効数字内に、ゼロでない数字が 1 つ以上存在する必要があることに留意してください。
浮動小数点値 | 16 進数文字列 |
---|---|
1.0 | 0x1.0p0 |
-1.0 | -0x1.0p0 |
2.0 | 0x1.0p1 |
3.0 | 0x1.8p1 |
0.5 | 0x1.0p-1 |
0.25 | 0x1.0p-2 |
Float.MAX_VALUE |
Float.MAX_VALUE |
0x1.fffffep127 Minimum Normal Value |
0x1.0p-126 |
Maximum Subnormal Value |
0x0.fffffep-126 |
Float.MIN_VALUE |
0x0.000002p-126 |
f
- 変換対象の float
引数の 16 進数文字列表現
public static Float valueOf(String s) throws NumberFormatException
s
で表される float
値を保持する Float
オブジェクトを返します。
s
が null
の場合は、 NullPointerException
がスローされます。
s
内の先頭と末尾の空白文字は無視されます。空白文字は、String.trim()
メソッドで削除されるときのように削除されます。 つまり、ASCII の空白文字と制御文字の両方が削除されます。s
の残りの文字が、次の字句構文規則に従って FloatValue を構成します。
ここで、Sign、FloatingPointLiteral、HexNumeral、HexDigits、SignedInteger、および FloatTypeSuffix は 『Java 言語仕様』の字句構造セクションの定義に従います。
- FloatValue:
- Signopt
NaN
- Signopt
Infinity
- Signopt FloatingPointLiteral
- Signopt HexFloatingPointLiteral
- SignedInteger
- HexFloatingPointLiteral:
- HexSignificand BinaryExponent FloatTypeSuffixopt
- HexSignificand:
- HexNumeral
- HexNumeral
.
0x
HexDigitsopt.
HexDigits0X
HexDigitsopt.
HexDigits
- BinaryExponent:
- BinaryExponentIndicator SignedInteger
- BinaryExponentIndicator:
p
P
s
が FloatValue の形式でない場合、NumberFormatException
がスローされます。そうでない場合、s
は通常の「浮動小数点表記」、つまり正確な 10 進値または 16 進値を表していると見なされます。 この正確な数値は、概念上は「無限に正確なバイナリ値」に変換されてから、IEEE 754 浮動小数点計算法による通常の最近似値丸め法 (ゼロ値の符号保持を含む) に従って float
型に丸められます。最後に、float
値を表す Float
オブジェクトが返されます。
浮動小数点値のローカライズされた文字列表現を解釈する場合、NumberFormat
のサブクラスを使用します。
浮動小数点リテラルの型を決定する指示子の末尾形式指示子 (1.0f
は float
値、1.0d
は double
値) は、このメソッドの結果に影響を与えません。つまり、入力文字列の数値は、ターゲットの浮動小数点型に直接変換されます。通常、文字列を double
に変換し、double
を float
に変換する 2 段階のシーケンスは、文字列を float
に直接変換するのと等価ではありません。たとえば、中間の double
に変換し、次に float
に変換した場合、文字列
「1.00000017881393421514957253748434595763683319091796875001d
」
の結果は float
値 1.0000002f
ですが、文字列を直接 float
に変換した場合、結果は 1.0000001f
です。
無効な文字列でこのメソッドが呼び出されたり、NumberFormatException
がスローされたりしないようにするために、Double.valueOf
のマニュアルには、入力のスクリーニングに使うことができる正規表現が記載されています。
s
- 解析される文字列
String
引数により表される値を保持する Float
オブジェクト
NumberFormatException
- 文字列が解析可能な数値を含まない場合public static Float valueOf(float f)
Float(float)
に優先して使用されます。 その理由は、このメソッドが頻繁に要求される値をキャッシュするので、操作に必要な領域や時間がはるかに少なくて済む場合が多いためです。
f
- float 値
public static float parseFloat(String s) throws NumberFormatException
Float
クラスの valueOf
メソッドを実行した場合と同様に、指定された String
が表す値に初期化された新しい float
値を返します。
s
- 解析される文字列
float
値
NumberFormatException
- 文字列が構文解析可能な float
値を含まない場合valueOf(String)
public static boolean isNaN(float v)
true
を、そうでない場合は false
を返します。
v
- 判定される値
true
、そうでない場合は false
public static boolean isInfinite(float v)
true
を、そうでない場合には false
を返します。
v
- 判定される値
true
、そうでない場合は false
public boolean isNaN()
Float
値が非数 (NaN) である場合には true
を、そうでない場合は false
を返します。
true
、そうでない場合は false
public boolean isInfinite()
Float
値の絶対値が無限量である場合には true
を、そうでない場合には false
を返します。
true
、そうでない場合は false
public String toString()
Float
オブジェクトの文字列表現を返します。このオブジェクトが表すプリミティブ float
値は、1 つの引数を取る toString
メソッドを実行した場合と同じ String
に変換されます。
Object
内の toString
String
表現toString(float)
public byte byteValue()
Float
の値を (byte
にキャストすることにより) byte
として返します。
Number
内の byteValue
byte
型に変換されたこのオブジェクトが表す float
値public short shortValue()
Float
の値を (short
にキャストすることにより) short
として返します。
Number
内の shortValue
short
型に変換されたこのオブジェクトが表す float
値public int intValue()
Float
の値を (int
型にキャストすることにより) int
として返します。
Number
内の intValue
int
型に変換されたこのオブジェクトが表す float
値public long longValue()
Float
の値を (long
型にキャストすることにより) long
として返します。
Number
内の longValue
long
型に変換されたこのオブジェクトが表す float
値public float floatValue()
Float
オブジェクトの float
値を返します。
Number
内の floatValue
float
値public double doubleValue()
Float
オブジェクトの double
値を返します。
Number
内の doubleValue
float
値を double
型に変換した値public int hashCode()
Float
オブジェクトのハッシュコードを返します。結果は、floatToIntBits(float)
メソッドで生成した場合とまったく同じように、この Float
オブジェクトが表すプリミティブ float
値の int 型ビット表現になります。
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
true
になるのは、引数が null
でなく、このオブジェクトが表す float
値と同じ値を保持する float
を表す Float
オブジェクトである場合だけです。このため、2 つの float
値が等しいと見なされるのは、floatToIntBits(float)
メソッドを各値に適用したときに同一の int
値が返される場合だけです。
ほとんどの場合、Float
クラスの 2 つのインスタンス f1
および f2
について、f1.equals(f2)
の値が true
になるのは、次の式の値が true
になる場合だけです。
f1.floatValue() == f2.floatValue()
しかし、例外事項も 2 つあります。
f1
および f2
の両方が Float.NaN
を表す場合は、Float.NaN==Float.NaN
の値が false
であっても、equals
メソッドは true
を返す
f1
が +0.0f
を表し、f2
が -0.0f
を表す場合、あるいは f1
が -0.0f
を表し、f2
が +0.0f
を表す場合は、0.0f==-0.0f
の値が true
であっても、equal
メソッドの結果は false
になる
Object
内の equals
obj
- 比較対象のオブジェクト
true
、そうでない場合は false
floatToIntBits(float)
public static int floatToIntBits(float value)
ビット 31 (マスク 0x80000000
で選択されるビット) は、浮動小数点数値の符号を表すビット 30 〜 23 (マスク 0x7f800000
で選択されるビット) は、指数を表すビット 22 〜 0 (マスク 0x007fffff
で選択されるビット) は、浮動小数点数値の有効数字 (仮数) を表す
引数が正の無限大の場合は、0x7f800000
が返される
引数が負の無限大の場合は、0xff800000
が返される
引数が NaN の場合は、0x7fc00000
が返される
どの場合も、返される値は整数であり、intBitsToFloat(int)
メソッドを指定すると、floatToIntBits
への引数と同じ浮動小数点値になります (すべての NaN 値が単一の「正規」NaN 値に収納されることを除く)。
value
- 浮動小数点値
public static int floatToRawIntBits(float value)
ビット 31 (マスク 0x80000000
で選択されるビット) は、浮動小数点数値の符号を表すビット 30 〜 23 (マスク 0x7f800000
で選択されるビット) は、指数を表すビット 22 〜 0 (マスク 0x007fffff
で選択されるビット) は、浮動小数点数値の有効数字 (仮数) を表す
引数が正の無限大の場合は、0x7f800000
が返される
引数が負の無限大の場合は、0xff800000
が返される
引数が NaN の場合、返される値は実際の NaN 値を示す整数です。floatToIntBits
メソッドとは異なり、floatToRawIntBits
メソッドが、すべてのビットパターン符号化 NaN を単一の正規 NaN 値に収納することはありません。
どの場合も、返される値は整数型であり、intBitsToFloat(int)
メソッドで指定された場合に、floatToRawIntBits
に指定された引数と同じ浮動小数点値が生成されます。
value
- 浮動小数点値
public static float intBitsToFloat(int bits)
float
値を返します。引数は、IEEE 754 浮動小数点「シングルフォーマット (single format)」ビット配列に従った浮動小数点表現と見なされます。
引数が 0x7f800000
の場合は、正の無限大が返されます。
引数が 0xff800000
の場合は、負の無限大が返されます。
引数が 0x7f800001
〜 0x7fffffff
または 0xff800001
〜 0xffffffff
の範囲内の値の場合、結果は NaN になります。Java により提供される IEEE 754 浮動小数点操作は、異なるビットパターンを持つ同じ型の 2 つの NaN 値を識別できません。個別の NaN 値を識別できるのは、Float.floatToRawIntBits
メソッドを使用する場合だけです。
そのほかの場合では、s、e、および m の 3 つの値について次の引数から計算できるとします。
この場合、浮動小数点値の結果は、数式 s·m·2e-150 の値と等しくなります。int s = ((bits >> 31) == 0) ? 1 : -1; int e = ((bits >> 23) & 0xff); int m = (e == 0) ? (bits & 0x7fffff) << 1 : (bits & 0x7fffff) | 0x800000;
このメソッドは、int
引数とまったく同じビットパターンを持つ float
NaN を返すことができない可能性があります。IEEE 754 では、2 種類の NaN (「シグナルを発生しない NaN」と「シグナルを発生する NaN」) を区別します。2 種類の NaN の違いは、通常 Java では確認できません。シグナルを発生する NaN での算術演算では、シグナルを発生する NaN が、異種でありながら同様のビットパターンを持つシグナルを発生しない NaN に変わります。ただし、シグナルを発生する NaN を単にコピーする一部のプロセッサも、この変換も行います。特に、シグナルを発生する NaN をコピーして、呼び出し側のメソッドに返すことで、この変換を実行できます。したがって、intBitsToFloat
は、シグナルを発生する NaN ビットパターンを持つ float
を返すことができない可能性があります。その結果、一部の int
値では、floatToRawIntBits(intBitsToFloat(start))
は、start
と等価ではない場合があります。加えて、どの特定のビットパターンがシグナルを発生する NaN を表すかは、プラットフォームによって異なります。 シグナルを発生しないかシグナルを発生するかにかかわらず、すべての NaN ビットパターンは上に示す NaN の範囲になければいけません。
bits
- 整数型
float
浮動小数点値public int compareTo(Float anotherFloat)
Float
オブジェクトを数値的に比較します。このメソッドによる比較は、Java 言語の数値比較演算子 (<, <=, ==, >= >
) をプリミティブ float
値に適用した場合とは次の 2 つの点で異なります。
Float.NaN
は自分自身に等しく、Float.POSITIVE_INFINITY
を含むほかのすべての float
値より大きいと見なされる
0.0f
は -0.0f
より大きいと見なされる
Comparable<Float>
内の compareTo
anotherFloat
- 比較対象の Float
anotherFloat
がこの Float
と同じ数値の場合は値 0
。この Float
が anotherFloat
より小さい数値の場合は 0
より小さい値。この Float
が anotherFloat
より大きい数値の場合は 0
より大きい値Comparable.compareTo(Object)
public static int compare(float f1, float f2)
float
値を比較します。返される整数値の符号は、次の呼び出しで返される整数の符号と同じになります。
new Float(f1).compareTo(new Float(f2))
f1
- 比較する最初の float
f2
- 比較する 2 番目の float
f1
の値が f2
と等しい場合は値 0
、f1
の値が f2
より小さい場合は 0
より小さい値、f1
の値が f2
より大きい場合は 0
より大きい値
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。