public final class Float extends Number implements Comparable<Float>
Floatクラスは、プリミティブ型floatの値をオブジェクトにラップします。 Float型のオブジェクトには、型がfloatの単一フィールドが含まれます。
さらにこのクラスは、floatをStringに、Stringをfloatに変換する各種メソッドや、floatの処理時に役立つ定数およびメソッドも提供します。
| 修飾子と型 | フィールド | 説明 |
|---|---|---|
static int |
BYTES |
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として返します。 |
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浮動小数点の「シングル・フォーマット」ビット・レイアウトに従って、指定された浮動小数点の値を表現して返します。
|
static int |
floatToRawIntBits(float value) |
IEEE 754浮動小数点の「シングル・フォーマット」ビット・レイアウトに従って、非数(NaN)値を保持する、指定された浮動小数点値の表現を返します。
|
float |
floatValue() |
この
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 |
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として返します。 |
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値を返します。 |
short |
shortValue() |
この
Floatの縮小プリミティブ変換後の値をshortとして返します。 |
static float |
sum(float a, float b) |
+演算子のように、2つの
float値を加算します。 |
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オブジェクトを返します。 |
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
float値を表すのに使われるビット数です。public static final int BYTES
float値を表すために使用されるバイト数です。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進数、を順に並べたもので表現される。
.」('\u002E')、aの小数部を表す何桁かの10進数、文字「E」('\u0045')、nを10進整数として表現したもの(メソッドInteger.toString(int)で生成)、を順に並べたもので表現される。
float型の隣接する値から引数を一意に識別するのに最低限必要な桁数にしてください。 たとえば、ゼロでない有限の引数fを指定してこのメソッドで作成した10進値表記をxとします。 この場合、fはxにもっとも近いfloat値でなければいけませんが、xまでの距離が同一のfloat値が2つ存在する場合には、fはそのどちらかであり、かつfの仮数の最下位ビットが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 |
0x1.fffffep127 |
Minimum Normal Value |
0x1.0p-126 |
Maximum Subnormal Value |
0x0.fffffep-126 |
Float.MIN_VALUE |
0x0.000002p-126 |
f - 変換するfloat。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
.0xHexDigitsopt.HexDigits0XHexDigitsopt.HexDigits
- BinaryExponent:
- BinaryExponentIndicator SignedInteger
- BinaryExponentIndicator:
pP
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 - 文字列が解析可能な数値を含まない場合。public static Float valueOf(float f)
float値を表すFloatインスタンスを返します。 新規Floatインスタンスが不要な場合、通常このメソッドがコンストラクタFloat(float)に優先して使用されます。その理由は、このメソッドが頻繁に要求される値をキャッシュするので、操作に必要な領域や時間がはるかに少なくて済む場合が多いためです。 f - float値。fを表すFloatインスタンス。public static float parseFloat(String s) throws NumberFormatException
FloatクラスのvalueOfメソッドを実行した場合と同様に、指定されたStringが表す値に初期化された新しいfloat値を返します。s - 解析される文字列。float値。NullPointerException - 文字列がnullの場合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 static boolean isFinite(float f)
trueを返し、そうでない場合(NaNおよび無限大の引数の場合)はfalseを返します。f - 判定されるfloat値true、それ以外の場合はfalsepublic boolean isNaN()
Float値が非数(NaN)である場合にはtrueを、そうでない場合はfalseを返します。true、そうでない場合はfalse。public boolean isInfinite()
Float値の絶対値が無限量である場合にはtrueを、そうでない場合にはfalseを返します。true、そうでない場合はfalse。public String toString()
Floatオブジェクトの文字列表現を返します。 このオブジェクトが表すプリミティブfloat値は、1つの引数を取るtoStringメソッドを実行した場合と同じStringに変換されます。 toString、クラスObjectString表現。toString(float)public byte byteValue()
Floatの縮小プリミティブ変換後の値をbyteとして返します。public short shortValue()
Floatの縮小プリミティブ変換後の値をshortとして返します。shortValue、クラスNumberfloat値をshort型に変換したもの。public int intValue()
Floatの縮小プリミティブ変換後の値をintとして返します。public long longValue()
Floatの縮小プリミティブ変換後の値をlongとして返します。public float floatValue()
Floatオブジェクトのfloat値を返します。floatValue、クラスNumberfloat値。public double doubleValue()
Floatの拡張プリミティブ変換後の値をdoubleとして返します。doubleValue、クラスNumberfloat値をdouble型に変換したものpublic int hashCode()
Floatオブジェクトのハッシュ・コードを返します。 結果は、floatToIntBits(float)メソッドで生成した場合とまったく同じように、このFloatオブジェクトが表すプリミティブfloat値のint型ビット表現になります。 hashCode、クラスObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public static int hashCode(float value)
Float.hashCode()との互換性がある、float値のハッシュ・コードを返します。value - ハッシュ対象の値float値のハッシュ・コード値。public boolean equals(Object obj)
trueになるのは、引数がnullでなく、このオブジェクトが表すfloat値と同じ値のfloatを表すFloatオブジェクトである場合だけです。 このため、2つのfloat値が等しいと見なされるのは、floatToIntBits(float)メソッドを各値に適用したときに同一のint値が返される場合だけです。
ほとんどの場合、クラスFloatの2つのインスタンスf1とf2について、f1.equals(f2)の値がtrueになるのは、
f1.floatValue() == f2.floatValue()
上記の値もtrueになる場合だけです。 しかし、例外事項も2つあります。
f1とf2がどちらもFloat.NaNを表している場合、Float.NaN==Float.NaNの値がfalseになるにもかかわらず、equalsメソッドからはtrueが返されます。
f1が+0.0fを表し、f2が-0.0fを表している場合、あるいはその逆の場合、0.0f==-0.0fの値がtrueになるにもかかわらず、equalテストの値はfalseになります。
equals、クラスObjectobj -比較対象のオブジェクト。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値(Float.POSITIVE_INFINITYを含む)よりも大きいとみなされる。
0.0fは-0.0fより大きいとみなされる。
Floatオブジェクトの自然順序付けで、equalsとの一貫性が確保されます。compareTo、インタフェースComparable<Float>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より大きい値。public static float sum(float a,
float b)
float値を加算します。a - 第1オペランドb - 第2オペランドaとbの合計BinaryOperatorpublic static float max(float a,
float b)
Math.maxを呼び出した場合と同様に、2つのfloat値の大きいほうを返します。a - 第1オペランドb - 第2オペランドaとbのどちらか大きい方BinaryOperatorpublic static float min(float a,
float b)
Math.minを呼び出した場合と同様に、2つのfloat値の小さいほうを返します。a - 第1オペランドb - 第2オペランドaとbのどちらか小さい方BinaryOperator バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。