- すべての実装されたインタフェース:
Serializable
,Comparable<Float>
,Constable
,ConstantDesc
Float
クラスは、プリミティブ型float
の値をオブジェクトにラップします。 Float
型のオブジェクトには、型がfloat
の単一フィールドが含まれます。
さらにこのクラスは、float
をString
に、String
をfloat
に変換する各種メソッドや、float
の処理時に役立つ定数およびメソッドも提供します。
これはvalue-basedクラスです。プログラマは、equalのインスタンスを交換可能として扱い、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。
浮動小数点等価、等価および比較
クラスjava.lang.Double
には、float
値に等しく適用可能な「等価性、等価性、浮動小数点値の比較の説明」があります。
小数点↔バイナリ変換の問題
java.lang.Double
の「バイナリから10進への変換に関する問題の説明」は、float
値にも適用されます。- 導入されたバージョン:
- 1.0
- 関連項目:
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final int
float
値を表すために使用されるバイト数です。static final int
有限のfloat
変数が持つ可能性のある最大指数です。static final float
float
型の正の最大有限値(2-2-23)·2127です。static final int
正規化されたfloat
変数が持つ可能性のある最小指数です。static final float
float
型の正の最小標準値2-126を保持する定数です。static final float
float
型の正の最小非ゼロ値2-149を保持する定数です。static final float
float
型の非数(NaN)値を保持する定数です。static final float
float
型の負の無限大値を保持する定数です。static final float
float
型の正の無限大値を保持する定数です。static final int
float
値の仮数のビット数。static final int
float
値を表すのに使われるビット数です。プリミティブ型float
を表すClass
インスタンス。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明byte
このFloat
の縮小プリミティブ変換後の値をbyte
として返します。static int
compare
(float f1, float f2) 指定された2つのfloat
値を比較します。int
2つのFloat
オブジェクトを数値的に比較します。このインスタンス自体の名目記述子を含むOptional
を返します。double
このFloat
の拡張プリミティブ変換後の値をdouble
として返します。boolean
このオブジェクトと指定されたオブジェクトを比較します。static float
float16ToFloat
(short floatBinary16) 引数の数値に最も近いfloat
値を、short
でエンコードされた浮動小数点binary16値を返します。static short
floatToFloat16
(float f) 引数に最も近いshort
でエンコードされた浮動小数点binary16値を返します。static int
floatToIntBits
(float value) IEEE 754浮動小数点の「シングル・フォーマット」ビット・レイアウトに従って、指定された浮動小数点の値を表現して返します。static int
floatToRawIntBits
(float value) IEEE 754浮動小数点の「シングル・フォーマット」ビット・レイアウトに従って、非数(NaN)値を保持する、指定された浮動小数点値の表現を返します。float
このFloat
オブジェクトのfloat
値を返します。int
hashCode()
このFloat
オブジェクトのハッシュ・コードを返します。static int
hashCode
(float value) Float.hashCode()
との互換性がある、float
値のハッシュ・コードを返します。static float
intBitsToFloat
(int bits) 指定されたビット表現と対応するfloat
値を返します。int
intValue()
このFloat
の縮小プリミティブ変換後の値をint
として返します。static boolean
isFinite
(float f) 引数が有限の浮動小数点値である場合はtrue
を返し、そうでない場合(NaNおよび無限大の引数の場合)はfalse
を返します。boolean
この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
このFloat
の縮小プリミティブ変換後の値をlong
として返します。static float
max
(float a, float b) Math.max
を呼び出した場合と同様に、2つのfloat
値の大きいほうを返します。static float
min
(float a, float b) Math.min
を呼び出した場合と同様に、2つのfloat
値の小さいほうを返します。static float
parseFloat
(String s) Float
クラスのvalueOf
メソッドを実行した場合と同様に、指定されたString
が表す値に初期化された新しいfloat
値を返します。このインスタンスをConstantDesc
として解決します。その結果がインスタンス自体です。short
このFloat
の縮小プリミティブ変換後の値をshort
として返します。static float
sum
(float a, float b) +演算子のように、2つのfloat
値を加算します。static String
toHexString
(float f) float
引数の16進数文字列表現を返します。toString()
このFloat
オブジェクトの文字列表現を返します。static String
toString
(float f) float
引数の文字列表現を返します。static Float
valueOf
(float f) 指定されたfloat
値を表すFloat
インスタンスを返します。static Float
文字列引数s
で表されるfloat
値を保持するFloat
オブジェクトを返します。
-
フィールド詳細
-
POSITIVE_INFINITY
public static final float POSITIVE_INFINITYfloat
型の正の無限大値を保持する定数です。 これは、Float.intBitsToFloat(0x7f800000)
から返される値と等しくなります。- 関連項目:
-
NEGATIVE_INFINITY
public static final float NEGATIVE_INFINITYfloat
型の負の無限大値を保持する定数です。 これは、Float.intBitsToFloat(0xff800000)
から返される値と等しくなります。- 関連項目:
-
NaN
public static final float NaNfloat
型の非数(NaN)値を保持する定数です。 これは、Float.intBitsToFloat(0x7fc00000)
から返される値と等しくなります。- 関連項目:
-
MAX_VALUE
public static final float MAX_VALUEfloat
型の正の最大有限値(2-2-23)·2127です。 16進数浮動小数点リテラル0x1.fffffeP+127f
と同等であり、Float.intBitsToFloat(0x7f7fffff)
とも同等です。- 関連項目:
-
MIN_NORMAL
public static final float MIN_NORMALfloat
型の正の最小標準値2-126を保持する定数です。 16進数浮動小数点リテラル0x1.0p-126f
と同等であり、Float.intBitsToFloat(0x00800000)
とも同等です。- 導入されたバージョン:
- 1.6
- 関連項目:
-
MIN_VALUE
public static final float MIN_VALUEfloat
型の正の最小非ゼロ値2-149を保持する定数です。 16進数浮動小数点リテラル0x0.000002P-126f
と同等であり、Float.intBitsToFloat(0x1)
とも同等です。- 関連項目:
-
SIZE
public static final int SIZEfloat
値を表すのに使われるビット数です。- 導入されたバージョン:
- 1.5
- 関連項目:
-
PRECISION
public static final int PRECISIONfloat
値の仮数のビット数。 これは、「Java言語仕様」のセクション4.2.3のパラメータNです。- 導入されたバージョン:
- 19
- 関連項目:
-
MAX_EXPONENT
public static final int MAX_EXPONENT有限のfloat
変数が持つ可能性のある最大指数です。 これは、Math.getExponent(Float.MAX_VALUE)
から返される値と等しくなります。- 導入されたバージョン:
- 1.6
- 関連項目:
-
MIN_EXPONENT
public static final int MIN_EXPONENT正規化されたfloat
変数が持つ可能性のある最小指数です。 これは、Math.getExponent(Float.MIN_NORMAL)
から返される値と等しくなります。- 導入されたバージョン:
- 1.6
- 関連項目:
-
BYTES
public static final int BYTESfloat
値を表すために使用されるバイト数です。- 導入されたバージョン:
- 1.8
- 関連項目:
-
TYPE
-
-
コンストラクタの詳細
-
Float
@Deprecated(since="9", forRemoval=true) public Float(float value) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このコンストラクタを使用することはほとんどありません。 静的ファクトリvalueOf(float)
は、より良いスペースと時間のパフォーマンスをもたらす可能性が高いため、通常はより良い選択です。プリミティブのfloat
引数を表す、新しく割り当てられたFloat
オブジェクトを構築します。- パラメータ:
value
-Float
によって表される値。
-
Float
@Deprecated(since="9", forRemoval=true) public Float(double value) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このコンストラクタを使用することはほとんどありません。 代わりに、静的ファクトリ・メソッドvalueOf(float)
メソッドを次のように使用:Float.valueOf((float)value)
。float
型に変換された引数を表す、新しく割り当てられたFloat
オブジェクトを構築します。- パラメータ:
value
-Float
によって表される値。
-
Float
@Deprecated(since="9", forRemoval=true) public Float(String s) throws NumberFormatException 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このコンストラクタを使用することはほとんどありません。 文字列をfloat
プリミティブに変換するにはparseFloat(String)
を使用し、文字列をFloat
オブジェクトに変換するにはvalueOf(String)
を使用します。文字列で表されるfloat
型の浮動小数点を表す、新しく割り当てられるFloat
オブジェクトを構築します。 文字列は、valueOf
メソッドと同様にfloat
値に変換されます。- パラメータ:
s
-Float
に変換する文字列。- 例外:
NumberFormatException
- 文字列が解析可能な数値を含まない場合。
-
-
メソッドの詳細
-
toString
public static String toString(float f) float
引数の文字列表現を返します。 次の文字はすべてASCII文字です。- 引数がNaNの場合、変換後の文字列は「
NaN
」。 - そうでない場合、結果は、引数の符号および絶対値を表す文字列になります。 符号が負の場合、結果の文字列の最初の文字は「
-
」('\u002D'
)となり、符号が正の場合、結果の文字列に符号文字は表示されない。 絶対値mについては、次のとおり:- mが無限大の場合、これは文字列
"Infinity"
で表される。したがって、正の無限大の結果は"Infinity"
、負の無限大の結果は"-Infinity"
となる。 - mがゼロの場合、これは文字列
"0.0"
で表される。したがって、負のゼロの結果は"-0.0"
、正のゼロの結果は"0.0"
となる。 - それ以外の場合、mは正で有限です。 次の2つの段階で文字列に変換されます:
- 小数点以下の選択: mを表すために、適切に定義された小数点dmが選択されています。 この小数点は、IEEE 754浮動小数点演算の最も近い端数処理ポリシーに従ってmに四捨五入される(ほとんど)です。
- 文字列としての書式設定: 10進数のdmは、値に応じてプレーンまたはコンピュータ化された科学表記で文字列として書式設定されます。
- mが無限大の場合、これは文字列
「小数」は、sが10の倍数でないように、一部の(一意)整数s > 0およびiに対するs×10iという形式の数です。 これらの整数は、それぞれ小数の「仮数」および「指数」です。 小数点のlengthは、10n-1 ≤ s < 10nに一致する(一意)正の整数nです。
有限正のmの小数dmは次のように定義されます:
- IEEE 754浮動小数点演算の通常の「四捨五入」丸めポリシーに従って、Rをmに丸めるすべての小数点のセットにします。
- pは、Rのすべての小数点以下の最小長にします。
- p≥2の場合、Tを長さpのR内のすべての小数点のセットにします。 それ以外の場合は、Tを長さ1または2のR内のすべての小数点のセットにします。
- dmを、mに最も近いTの小数として定義します。 または、Tにこのような小数が2つある場合は、偶数の仮数を持つ小数を選択します。
選択した(独自)の小数点dmが書式設定されます。 s、iおよびnをそれぞれdmの仮数、指数および長さとします。 さらに、e = n + iとします - s1…snをsの通常の10進展開にします。 s1≠0およびsn≠0に注意してください。 下の小数点
'.'
は'\u002E'
で、指数インジケータ'E'
は'\u0045'
です。- ケース -3 ≤ e < 0: dmは、
0.0
…0
としてフォーマットされますs1…sn。小数点とs1の間に正確に -(n + i)ゼロがあります。 たとえば、123×10-4は0.0123
とフォーマットされます。 - ケース0 ≤ e < 7:
- サブケースi ≥0: dmは、s1…snとしてフォーマットされます
0
…0.0
。snと小数点の間に正確にiゼロがあります。 たとえば、123×102は12300.0
とフォーマットされます。 - サブケースi < 0: dmは、s1…としてフォーマットされますsn+i
.
sn+i+1…sn、ここで小数点の右に正確に-i桁あります。 たとえば、123×10-1は12.3
とフォーマットされます。
- サブケースi ≥0: dmは、s1…snとしてフォーマットされます
- ケースe < -3またはe ≥7: コンピュータ化された科学表記法を使用して、dmをフォーマットします。 ここで、eは
Integer.toString(int)
によってフォーマットされます。- サブケースn = 1: dmは、s1
.0E
eとしてフォーマットされます。 たとえば、1×1023は1.0E23
とフォーマットされます。 - サブケースn > 1: dmは、s1
.
s2としてフォーマットされます…snE
e。 たとえば、123×10-21は1.23E-19
とフォーマットされます。
- サブケースn = 1: dmは、s1
浮動小数点値のローカライズされた文字列表現を作成する場合、
NumberFormat
のサブクラスを使用します。- パラメータ:
f
- 変換するfloat
。- 戻り値:
- この引数の文字列表現。
- 引数がNaNの場合、変換後の文字列は「
-
toHexString
public static String toHexString(float f) float
引数の16進数文字列表現を返します。 次の文字はすべてASCII文字です。- 引数がNaNの場合、変換後の文字列は「
NaN
」。 - そうでない場合、結果は、引数の符号および絶対値を表す文字列になります。 符号が負の場合、結果の文字列の最初の文字は「
-
」('\u002D'
)となり、符号が正の場合、結果の文字列に符号文字は表示されない。 絶対値mについては、次のとおり:- mが無限大の場合、これは文字列
"Infinity"
で表される。したがって、正の無限大の結果は"Infinity"
、負の無限大の結果は"-Infinity"
となる。 - mがゼロの場合、これは文字列
"0x0.0p0"
で表される。したがって、負のゼロの結果は"-0x0.0p0"
、正のゼロの結果は"0x0.0p0"
となる。 - mが正規化された表現の
float
値の場合は、有効数字と指数のフィールドを表すのに部分文字列が使われる。 有効数字は、文字列"0x1."
と、小数部として残りの有効数字の小文字の16進表現を続けて表される。 すべての桁が0でないかぎり(すべてが0の場合は単一の0を使用)、16進表現の末尾の0は削除される。 次に、指数は、指数値でInteger.toString
を呼び出して生成するときのように、"p"
とそれに続く完全な指数の10進数文字列で表される。 - mが非正規表現の
float
値の場合、有効数字は、文字列"0x0."
と、小数部として残りの有効数字の16進表現を続けて表される。 16進表現の末尾の0は削除されます。 次に、指数は"p-126"
で表される。 サブノーマル有効数字内に、ゼロでない数字が1つ以上存在する必要があることに留意してください。
- mが無限大の場合、これは文字列
例 浮動小数点値 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
0x1.fffffep127
Minimum Normal Value
0x1.0p-126
Maximum Subnormal Value
0x0.fffffep-126
Float.MIN_VALUE
0x0.000002p-126
- パラメータ:
f
- 変換するfloat
。- 戻り値:
- この引数の16進数の文字列表現。
- 導入されたバージョン:
- 1.5
- 引数がNaNの場合、変換後の文字列は「
-
valueOf
public static Float valueOf(String s) throws NumberFormatException 文字列引数s
で表されるfloat
値を保持するFloat
オブジェクトを返します。s
がnull
の場合、NullPointerException
がスローされます。s
内の先頭と末尾の空白文字は無視されます。 空白文字は、String.trim()
メソッドで削除されるときのように削除されます。つまり、ASCIIの空白文字と制御文字の両方が削除されます。s
の残りの文字が、次の字句構文ルールに従ってFloatValueを構成します。- FloatValue:
- Signopt
NaN
- Signopt
Infinity
- Signopt FloatingPointLiteral
- Signopt HexFloatingPointLiteral
- SignedInteger
- Signopt
- HexFloatingPointLiteral:
- HexSignificand BinaryExponent FloatTypeSuffixopt
- HexSignificand:
- HexNumeral
- HexNumeral
.
0x
HexDigitsopt.
HexDigits0X
HexDigitsopt.
HexDigits - HexNumeral
- BinaryExponent:
- BinaryExponentIndicator SignedInteger
- BinaryExponentIndicator:
p
P
s
の形式がFloatValueでない場合は、NumberFormatException
がスローされます。 そうでない場合、s
は通常の「浮動小数点表記」、つまり正確な10進値または16進値を表していると見なされます。この正確な数値は、概念上は「無限に正確なバイナリ値」に変換されてから、IEEE 754浮動小数点計算法による通常の最近似値丸め法(ゼロ値の符号保持を含む)に従ってfloat
型に丸められます。 最近似値丸め法は、オーバーフローやアンダーフローの動作が発生することも意味します。s
の正確な値の絶対値が十分大きい場合(MAX_VALUE
+ulp(MAX_VALUE)
/2以上の場合)、float
に丸めると無限大になり、s
の正確な値が十分小さい場合(MIN_VALUE
/2以下の場合)、float に丸めるとゼロになることに注意してください。 最後に、丸めが完了したら、このfloat
値を表すFloat
オブジェクトが返されます。浮動小数点値のローカライズされた文字列表現を解釈する場合、
NumberFormat
のサブクラスを使用します。末尾の形式指定子つまり浮動小数点リテラルの種類を決定する指定子(
1.0f
はfloat
値、1.0d
はdouble
値)は、このメソッドの結果に与えません。 つまり、入力文字列の数値は、ターゲットの浮動小数点型に直接変換されます。 一般に、文字列をdouble
に変換し、double
をfloat
に変換する2ステップのシーケンスは、文字列をfloat
に変換するのと等価ではありません。 たとえば、文字列
"1.00000017881393421514957253748434595763683319091796875001d"
を最初に中間のdouble
に変換し、次にfloat
に変換した場合、結果はfloat
値1.0000002f
になります。その文字列をfloat
に直接変換した場合、結果は1.0000001f
になります。無効な文字列でこのメソッドが呼び出されたり、
NumberFormatException
がスローされたりしないようにするために、Double.valueOf
のマニュアルには、入力のスクリーニングに使うことができる正規表現が記載されています。- パラメータ:
s
- 解析される文字列。- 戻り値:
String
引数により表される値を保持するFloat
オブジェクト。- 例外:
NumberFormatException
- 文字列が解析可能な数値を含まない場合。- 関連項目:
-
valueOf
public static Float valueOf(float f) 指定されたfloat
値を表すFloat
インスタンスを返します。 新規Float
インスタンスが不要な場合、通常このメソッドがコンストラクタFloat(float)
に優先して使用されます。その理由は、このメソッドが頻繁に要求される値をキャッシュするので、操作に必要な領域や時間がはるかに少なくて済む場合が多いためです。- パラメータ:
f
- float値。- 戻り値:
f
を表すFloat
インスタンス。- 導入されたバージョン:
- 1.5
-
parseFloat
public static float parseFloat(String s) throws NumberFormatException Float
クラスのvalueOf
メソッドを実行した場合と同様に、指定されたString
が表す値に初期化された新しいfloat
値を返します。- パラメータ:
s
- 解析される文字列。- 戻り値:
- 文字列引数で表される
float
値。 - 例外:
NullPointerException
- 文字列がnullの場合NumberFormatException
- 文字列が解析可能なfloat
を含まない場合。- 導入されたバージョン:
- 1.2
- 関連項目:
-
isNaN
public static boolean isNaN(float v) 指定された数値が非数(NaN)である場合にはtrue
を、そうでない場合はfalse
を返します。- APIのノート:
- このメソッドは、IEEE 754で定義されているisNaN演算に対応します。
- パラメータ:
v
- 判定される値。- 戻り値:
- 引数がNaNである場合は
true
、そうでない場合はfalse
。
-
isInfinite
public static boolean isInfinite(float v) 指定された数値の絶対値が無限量である場合にはtrue
を、そうでない場合にはfalse
を返します。- APIのノート:
- このメソッドは、IEEE 754で定義されているisInfinite演算に対応します。
- パラメータ:
v
- 判定される値。- 戻り値:
- 引数が正または負の無限大の場合は
true
、そうでない場合はfalse
。
-
isFinite
public static boolean isFinite(float f) 引数が有限の浮動小数点値である場合はtrue
を返し、そうでない場合(NaNおよび無限大の引数の場合)はfalse
を返します。- APIのノート:
- このメソッドは、IEEE 754で定義されているisFinite演算に対応します。
- パラメータ:
f
- 判定されるfloat
値- 戻り値:
- その引数が有限の浮動小数点値である場合は
true
、それ以外の場合はfalse
- 導入されたバージョン:
- 1.8
-
isNaN
public boolean isNaN()このFloat
値が非数(NaN)である場合にはtrue
を、そうでない場合はfalse
を返します。- 戻り値:
- このオブジェクトが表す値がNaNである場合は
true
、そうでない場合はfalse
。
-
isInfinite
public boolean isInfinite()このFloat
値の絶対値が無限量である場合にはtrue
を、そうでない場合にはfalse
を返します。- 戻り値:
- このオブジェクトが表す値が正の無限大または負の無限大である場合は
true
、そうでない場合はfalse
。
-
toString
-
byteValue
public byte byteValue()このFloat
の縮小プリミティブ変換後の値をbyte
として返します。- オーバーライド:
byteValue
、クラスNumber
- 戻り値:
- このオブジェクトが表す
float
値をbyte
型に変換したもの。 - Java言語仕様を参照してください:
-
5.1.3 プリミティブ・コンバージョンの解説
-
shortValue
public short shortValue()このFloat
の縮小プリミティブ変換後の値をshort
として返します。- オーバーライド:
shortValue
、クラスNumber
- 戻り値:
- このオブジェクトが表す
float
値をshort
型に変換したもの。 - Java言語仕様を参照してください:
-
5.1.3 プリミティブ・コンバージョンの解説
- 導入されたバージョン:
- 1.1
-
intValue
public int intValue()このFloat
の縮小プリミティブ変換後の値をint
として返します。- 定義:
intValue
、クラスNumber
- 戻り値:
- このオブジェクトが表す
float
値をint
型に変換したもの。 - Java言語仕様を参照してください:
-
5.1.3 プリミティブ・コンバージョンの解説
-
longValue
public long longValue()このFloat
の縮小プリミティブ変換後の値をlong
として返します。- 定義:
longValue
、クラスNumber
- 戻り値:
- このオブジェクトが表す
float
値をlong
型に変換したもの。 - Java言語仕様を参照してください:
-
5.1.3 プリミティブ・コンバージョンの解説
-
floatValue
public float floatValue()このFloat
オブジェクトのfloat
値を返します。- 定義:
floatValue
、クラスNumber
- 戻り値:
- このオブジェクトが表す
float
値。
-
doubleValue
public double doubleValue()このFloat
の拡張プリミティブ変換後の値をdouble
として返します。- 定義:
doubleValue
、クラスNumber
- APIのノート:
- このメソッドは、IEEE 754で定義されているconvertFormat演算に対応します。
- 戻り値:
- このオブジェクトが表す
float
値をdouble
型に変換したもの - Java言語仕様を参照してください:
-
5.1.2 プリミティブ変換の強化
-
hashCode
public int hashCode()このFloat
オブジェクトのハッシュ・コードを返します。 結果は、floatToIntBits(float)
メソッドで生成した場合とまったく同じように、このFloat
オブジェクトが表すプリミティブfloat
値のint型ビット表現になります。 -
hashCode
public static int hashCode(float value) Float.hashCode()
との互換性がある、float
値のハッシュ・コードを返します。- パラメータ:
value
- ハッシュ対象の値- 戻り値:
float
値のハッシュ・コード値。- 導入されたバージョン:
- 1.8
-
equals
public boolean equals(Object obj) このオブジェクトと指定されたオブジェクトを比較します。 結果がtrue
になるのは、引数がnull
でなく、このオブジェクトが表すfloat
値と同じ値のfloat
を表すFloat
オブジェクトである場合だけです。 このため、2つのfloat
値が等しいと見なされるのは、floatToIntBits(float)
メソッドを各値に適用したときに同一のint
値が返される場合だけです。- オーバーライド:
equals
、クラスObject
- APIのノート:
- このメソッドは、
==
演算子が等価関係を定義せず、「等しい契約」を満たすために等価関係を実装する必要があるため、float
値の==
演算子ではなくfloatToIntBits(float)
という観点で定義されます。浮動小数点の等価性と等価性の詳細は、「このディスカッション」を参照してください。 - パラメータ:
obj
-比較対象のオブジェクト。- 戻り値:
- オブジェクトが同じである場合は
true
、そうでない場合はfalse
。 - Java言語仕様を参照してください:
-
「15.21.1 数値等価演算子==と!=」
- 関連項目:
-
floatToIntBits
public static int floatToIntBits(float value) IEEE 754浮動小数点の「シングル・フォーマット」ビット・レイアウトに従って、指定された浮動小数点の値を表現して返します。ビット31 (マスク
0x80000000
によって選択されるビット)は、浮動小数点の符号を表します。 ビット30-23 (マスク0x7f800000
によって選択されるビット)は、指数を表します。 ビット22-0 (マスク0x007fffff
によって選択されるビット)は、浮動小数点の有効値(仮数と呼ばれる場合もある)を表します。引数が正の無限大の場合、結果は
0x7f800000
になります。引数が負の無限大の場合、結果は
0xff800000
になります。引数がNaNの場合、結果は
0x7fc00000
になります。どの場合も、返される値は整数であり、
intBitsToFloat(int)
メソッドを指定すると、floatToIntBits
への引数と同じ浮動小数点値になります(すべてのNaN値が単一の「正規」NaN値に収納されることを除く)。- パラメータ:
value
- 浮動小数点値。- 戻り値:
- 浮動小数点値を表すビット。
-
floatToRawIntBits
public static int floatToRawIntBits(float value) IEEE 754浮動小数点の「シングル・フォーマット」ビット・レイアウトに従って、非数(NaN)値を保持する、指定された浮動小数点値の表現を返します。ビット31 (マスク
0x80000000
によって選択されるビット)は、浮動小数点の符号を表します。 ビット30-23 (マスク0x7f800000
によって選択されるビット)は、指数を表します。 ビット22-0 (マスク0x007fffff
によって選択されるビット)は、浮動小数点の有効値(仮数と呼ばれる場合もある)を表します。引数が正の無限大の場合、結果は
0x7f800000
になります。引数が負の無限大の場合、結果は
0xff800000
になります。引数がNaNの場合、返される値は実際のNaN値を示す整数です。
floatToIntBits
メソッドとは異なり、floatToRawIntBits
メソッドが、すべてのビット・パターン符号化NaNを単一の「正規」NaN値に収納することはありません。どの場合も、返される値は整数であり、
intBitsToFloat(int)
メソッドを指定すると、floatToRawIntBits
への引数と同じ浮動小数点値になります。- パラメータ:
value
- 浮動小数点値。- 戻り値:
- 浮動小数点値を表すビット。
- 導入されたバージョン:
- 1.3
-
intBitsToFloat
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つの値について次の引数から計算できるとします。
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
浮動小数点値。
-
float16ToFloat
public static float float16ToFloat(short floatBinary16) 引数の数値に最も近いfloat
値を、short
でエンコードされた浮動小数点binary16値を返します。 変換は正確です。すべてのbinary16値は、float
で正確に表すことができます。 特例として:- 引数がゼロの場合、結果は引数と同じ符号を持つゼロになります。
- 引数が無限の場合、結果は引数と同じ符号を持つ無限大になります。
- 引数がNaNの場合、結果はNaNになります。
IEEE 754 binary16形式
IEEE 754標準では、binary16を16ビット形式、32ビットのbinary32形式(float
型に対応)および64ビットのbinary64形式(double
型に対応)として定義しています。 binary16形式は、ほかのIEEE 754形式に似ていますが、小さい形式の場合は、NaN、署名されたインフィニティ、符号付きゼロ、サブ・ノーマルなどの通常のIEEE 754値がすべて含まれています。 binary16書式のパラメータ(JLS 4.2.3)は、N = 11精度ビット、K = 5指数ビット、E「最高」 = 15,およびE「分」 = -14です。- APIのノート:
- このメソッドは、IEEE 754で定義されたconvertFormat操作にbinary16形式からbinary32形式に対応します。 このメソッドの操作は、プリミティブ拡張変換 (JLS 5.1.2)に似ています。
- パラメータ:
floatBinary16
-float
に変換するbinary16値- 戻り値:
- 引数の数値に最も近い
float
値、short
でエンコードされた浮動小数点binary16値 - 導入されたバージョン:
- 20
-
floatToFloat16
public static short floatToFloat16(float f) 引数に最も近いshort
でエンコードされた浮動小数点binary16値を返します。 変換は「最も近い偶数丸めモードへの丸め」で計算されます。 特例として:- 引数がゼロの場合、結果は引数と同じ符号を持つゼロになります。
- 引数が無限の場合、結果は引数と同じ符号を持つ無限大になります。
- 引数がNaNの場合、結果はNaNになります。
float16ToFloat(short)
メソッドを参照してください。- APIのノート:
- このメソッドは、IEEE 754で定義されたconvertFormat操作にbinary32形式からbinary16形式に対応します。 このメソッドの操作は、プリミティブ・ナローイング変換(JLS 5.1.3)に似ています。
- パラメータ:
f
- binary16に変換するfloat
値- 戻り値:
short
でエンコードされた浮動小数点のbinary16値(引数に最も近い値)- 導入されたバージョン:
- 20
-
compareTo
public int compareTo(Float anotherFloat) 2つのFloat
オブジェクトを数値的に比較します。 このメソッドでは、float
値のJava言語数値比較演算子(<, <=, ==, >=, >
)で定義された不完全な順序と比較して、2つの差異があるFloat
オブジェクトに合計順序が適用されます。- NaNは、他の値に関して「順序なし」で、比較演算子ではそれ自体に対して不等です。 このメソッドは、
Float.NaN
をそれ自体に等しく、他のすべてのdouble
値(Float.POSITIVE_INFINITY
を含む)より大きく定義することを選択します。 - 正のゼロと負のゼロは、数値で比較されますが、区別できる値は明確です。 このメソッドでは、正のゼロ((
+0.0f
))を負のゼロ((-0.0f
))より大きい値として定義します。
Float
オブジェクトの「自然順序付け」が「等しい」であることが保証されます。浮動小数点比較および順序付けの詳細は、「このディスカッション」を参照してください。- 定義:
compareTo
、インタフェースComparable<Float>
- パラメータ:
anotherFloat
- 比較対象のFloat
。- 戻り値:
anotherFloat
がこのFloat
と同じ数値の場合は値0
。Float
がanotherFloat
より小さい数値の場合は0
より小さい値。Float
がanotherFloat
より大きい数値の場合は0
より大きい値。- Java言語仕様を参照してください:
-
「15.20.1 数値比較演算子
<
、<=
、>
および>=
」 - 導入されたバージョン:
- 1.2
- NaNは、他の値に関して「順序なし」で、比較演算子ではそれ自体に対して不等です。 このメソッドは、
-
compare
public static int compare(float f1, float f2) 指定された2つのfloat
値を比較します。 返される整数値の符号は、次の呼出しで返される整数の符号と同じになります。Float.valueOf(f1).compareTo(Float.valueOf(f2))
- パラメータ:
f1
- 比較する最初のfloat
。f2
- 比較する2番目のfloat
。- 戻り値:
f1
がこのf2
と同じ数値の場合は値0
。f1
がf2
より小さい数値の場合は0
より小さい値。f1
がf2
より大きい数値の場合は0
より大きい値。- 導入されたバージョン:
- 1.4
-
sum
public static float sum(float a, float b) +演算子のように、2つのfloat
値を加算します。- APIのノート:
- このメソッドは、IEEE 754で定義されている追加演算に対応します。
- パラメータ:
a
- 第1オペランドb
- 第2オペランド- 戻り値:
a
とb
の合計- Java言語仕様を参照してください:
-
4.2.4 浮動小数点操作
- 導入されたバージョン:
- 1.8
- 関連項目:
-
max
public static float max(float a, float b) Math.max
を呼び出した場合と同様に、2つのfloat
値の大きいほうを返します。- APIのノート:
- このメソッドは、IEEE 754で定義されている最大演算数に対応します。
- パラメータ:
a
- 第1オペランドb
- 第2オペランド- 戻り値:
a
とb
のどちらか大きい方- 導入されたバージョン:
- 1.8
- 関連項目:
-
min
public static float min(float a, float b) Math.min
を呼び出した場合と同様に、2つのfloat
値の小さいほうを返します。- APIのノート:
- このメソッドは、IEEE 754で定義されている最小動作に対応します。
- パラメータ:
a
- 第1オペランドb
- 第2オペランド- 戻り値:
a
とb
のどちらか小さい方- 導入されたバージョン:
- 1.8
- 関連項目:
-
describeConstable
-
resolveConstantDesc
public Float resolveConstantDesc(MethodHandles.Lookup lookup) このインスタンスをConstantDesc
として解決します。その結果がインスタンス自体です。- 定義:
- インタフェース
ConstantDesc
内のresolveConstantDesc
- パラメータ:
lookup
- ignored- 戻り値:
- Floatインスタンス
- 導入されたバージョン:
- 12
-