Класс Float

Все реализуемые интерфейсы:
Serializable, Comparable<Float>
public final class Float
extends Number
implements Comparable<Float>

Класс Float оборачивает значение примитивного типа float в объект. Объект типа Float содержит единственное поле типа float.

Кроме того, этот класс предоставляет несколько методов для преобразования float в String и String в float, а также другие константы и методы, полезные при работе с float.

С тех пор:
1.0
См. также:
Сериализованная форма

Поля

Модификатор и тип Поле Описание
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

Константа, содержащая значение «Не число» (NaN) типа float.

static float NEGATIVE_INFINITY

Константа, содержащая отрицательную бесконечность типа float.

static float POSITIVE_INFINITY

Константа, содержащая положительную бесконечность типа float.

static int SIZE

Количество бит, используемых для представления значения float.

static Class<Float> TYPE

Экземпляр Class представляющий примитивный тип float.

Конструкторы

Конструктор Описание
Float​(double value)

Устаревший.

Использование этого конструктора редко уместно.

Float​(float value)

Устаревший.

Использование этого конструктора редко уместно.

Float​(String s)

Устаревший.

Использование этого конструктора редко уместно.

Методы

Модификатор и тип Метод Описание
byte byteValue()

Возвращает значение этого Float как byte после сужения примитивного преобразования.

static int compare​(float f1, float f2)

Сравнивает два указанных значения float.

int compareTo​(Float anotherFloat)

Сравнивает два объекта 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; совместимо с Float.hashCode().

static float intBitsToFloat​(int bits)

Возвращает значение с плавающей точкой float, соответствующее заданному битовому представлению.

int intValue()

Возвращает значение этого Float как int после сужения примитивного преобразования.

static boolean isFinite​(float f)

Возвращает true если аргумент является конечным значением с плавающей точкой; возвращает false в противном случае (для аргументов NaN и бесконечности).

boolean isInfinite()

Возвращает true если это значение Float бесконечно велико по модулю, false в противном случае.

static boolean isInfinite​(float v)

Возвращает true если указанное число бесконечно велико по модулю, false в противном случае.

boolean isNaN()

Возвращает true если это значение Float является значением «Не число» (NaN), false в противном случае.

static boolean isNaN​(float v)

Возвращает true если указанное число является значением «Не число» (NaN), false в противном случае.

long longValue()

Возвращает значение этого Float как long после сужения примитивного преобразования.

static float max​(float a, float b)

Возвращает большее из двух значений float как если бы вызывали Math.max.

static float min​(float a, float b)

Возвращает меньшее из двух значений float как если бы вызывали Math.min.

static float parseFloat​(String s)

Возвращает новый float, инициализированный значением, представленным указанным String, как выполняется методом valueOf класса Float.

short shortValue()

Возвращает значение этого Float как short после сужения примитивного преобразования.

static float sum​(float a, float b)

Складывает два значения с плавающей точкой float вместе в соответствии с оператором +.

static String toHexString​(float f)

Возвращает шестнадцатеричное строковое представление аргумента float.

String toString()

Возвращает строковое представление этого объекта Float.

static String toString​(float f)

Возвращает строковое представление аргумента float.

static Float valueOf​(float f)

Возвращает экземпляр Float представляющий указанное значение с плавающей точкой float.

static Float valueOf​(String s)

Возвращает объект Float, содержащий значение с плавающей точкой float, представленное строковым аргументом s.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Поля

POSITIVE_INFINITY

public static final float POSITIVE_INFINITY

Константа, содержащая положительную бесконечность типа float. Она равна значению, возвращаемому Float.intBitsToFloat(0x7f800000).

См. также:
Значения константных полей

NEGATIVE_INFINITY

public static final float NEGATIVE_INFINITY

Константа, содержащая отрицательную бесконечность типа float. Она равна значению, возвращаемому Float.intBitsToFloat(0xff800000).

См. также:
Значения константных полей

NaN

public static final float NaN

Константа, содержащая значение «не число» (NaN) типа float. Она эквивалентна значению, возвращаемому Float.intBitsToFloat(0x7fc00000).

См. также:
Значения константных полей

MAX_VALUE

public static final float MAX_VALUE

Константа, содержащая наибольшее положительное конечное значение типа float, (2-2-23)·2127. Она равна шестнадцатеричной плавающей точке 0x1.fffffeP+127f и также равна Float.intBitsToFloat(0x7f7fffff).

См. также:
Значения константных полей

MIN_NORMAL

public static final float MIN_NORMAL

Константа, содержащая наименьшее положительное нормализованное значение типа float, 2-126. Она равна шестнадцатеричной плавающей точке 0x1.0p-126f и также равна Float.intBitsToFloat(0x00800000).

С:
1.6
См. также:
Значения константных полей

MIN_VALUE

public static final float MIN_VALUE

Константа, содержащая наименьшее положительное ненулевое значение типа float, 2-149. Она равна шестнадцатеричной плавающей точке 0x0.000002P-126f и также равна Float.intBitsToFloat(0x1).

См. также:
Значения константных полей

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
См. также:
Значения константных полей

SIZE

public static final int SIZE

Количество битов, используемых для представления значения float.

С:
1.5
См. также:
Значения константных полей

BYTES

public static final int BYTES

Количество байтов, используемых для представления значения float.

С:
1.8
См. также:
Значения константных полей

TYPE

public static final Class<Float> TYPE

Экземпляр Class представляющий примитивный тип float.

С:
1.1

Конструкторы

Float

@Deprecated(since="9")
public Float(float value)
Устаревший.
Использование этого конструктора редко уместно. Статический фабричный метод valueOf(float) обычно является лучшим выбором, так как он, скорее всего, обеспечит значительно лучшую производительность по времени и памяти.

Создает новый объект Float, представляющий примитивное значение float.

Параметры:
value - значение, которое должно быть представлено объектом Float.

Float

@Deprecated(since="9")
public Float(double value)
Устаревший.
Использование этого конструктора редко уместно. Вместо этого используйте статический фабричный метод valueOf(float) следующим образом: Float.valueOf((float)value).

Создает новый объект Float , представляющий аргумент, преобразованный к типу float.

Параметры:
value - значение, которое должно быть представлено объектом Float.

Float

@Deprecated(since="9")
public Float(String s)
      throws NumberFormatException
Устаревший.
Использование этого конструктора редко уместно. Используйте parseFloat(String) для преобразования строки в примитивное значение float или valueOf(String) для преобразования строки в объект Float.

Создает новый объект Float, представляющий значение с плавающей точкой типа float, представленное строкой. Строка преобразуется в значение с плавающей точкой так, как если бы это делал метод valueOf.

Параметры:
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 больше или равен 10-3, но меньше 107, то он представляется как целая часть m в десятичном формате без ведущих нулей, за которым следует '.' ('\u002E'), а затем одна или более десятичных цифр, представляющих дробную часть m.
    • Если m меньше 10-3 или больше или равен 107, он представляется в так называемой «компьютерной научной записи». Пусть n — уникальное целое число такое, что 10n ≤ m < 10n+1; затем пусть a — математически точное частное m и 10n так, что 1 ≤ a < 10. Модуль тогда представляется как целая часть a, как одна десятичная цифра, за которой следует '.' ('\u002E'), за которой следуют десятичные цифры, представляющие дробную часть a, за которыми следует буква 'E' ('\u0045' ), за которой следует представление n как десятичного целого числа, как произведено методом Integer.toString(int).
Сколько цифр должно быть напечатано для дробной части m или a? Должна быть напечатана по крайней мере одна цифра для дробной части, а за ней — столько же, сколько нужно, чтобы однозначно отличить значение аргумента от соседних значений типа float. То есть, предположим, что x — точное математическое значение, представленное десятичной записью, полученной этим методом для конечного ненулевого аргумента f. Тогда f должно быть значением, ближайшим к x; или, если два значения f равноудалены от x, то f должно быть одним из них, а самый младший бит мантиссы f должен быть 0.

Для создания локальных строковых представлений значения с плавающей точкой используйте подклассы NumberFormat.

Параметры:
f — с плавающей точкой, подлежащий преобразованию.
Возвращает:
строковое представление аргумента.

toHexString

public static String toHexString(float f)

Возвращает шестнадцатеричное строковое представление аргумента float. Все упоминаемые ниже символы являются символами ASCII.

  • Если аргумент является NaN, результат — строка "NaN".
  • В противном случае результат — строка, представляющая знак и модуль (абсолютное значение) аргумента. Если знак отрицательный, первый символ результата — '-' ('\u002D'); если знак положительный, символ знака в результате не отображается. Что касается модуля m:
    • Если m равен бесконечности, он представляется строкой "Infinity"; таким образом, положительная бесконечность даёт результат "Infinity", а отрицательная бесконечность — результат "-Infinity".
    • Если m равен нулю, он представляется строкой "0x0.0p0"; таким образом, отрицательный ноль даёт результат "-0x0.0p0", а положительный ноль — результат "0x0.0p0".
    • Если m является значением с плавающей точкой с нормализованным представлением, подстроки используются для представления полей мантиссы и показателя степени. Мантисса представляется символами "0x1." за которыми следует шестнадцатеричное представление остальной части мантиссы как дроби. Завершающие нули в шестнадцатеричном представлении удаляются, за исключением случая, когда все цифры равны нулю, в этом случае используется одиночный ноль. Далее, показатель степени представляется "p" за которым следует десятичная строка смещённого показателя степени так, как если бы она была получена вызовом Integer.toString для значения показателя степени.
    • Если m является значением с плавающей точкой с субнормализованным представлением, мантисса представляется символами "0x0." за которыми следует шестнадцатеричное представление остальной части мантиссы как дроби. Завершающие нули в шестнадцатеричном представлении удаляются. Далее, показатель степени представляется "p-126". Обратите внимание, что в субнормализованной мантиссе должна быть хотя бы одна ненулевая цифра.
Значение с плавающей точкой Шестнадцатеричная строка
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 подлежащий преобразованию.
Возвращает:
шестнадцатеричное строковое представление аргумента.
С:
1.5

valueOf

public static Float valueOf(String s)
                     throws NumberFormatException

Возвращает объект Float, содержащий значение float, представленное строкой аргумента s.

Если s является null, то выбрасывается NullPointerException.

Пробельные символы в начале и конце строки s игнорируются. Пробелы удаляются так же, как и методом String.trim(); то есть, удаляются как пробелы ASCII, так и управляющие символы. Остальная часть s должна соответствовать правилам лексического синтаксиса FloatValue:

FloatValue:
Signopt NaN
Signopt Infinity
Signopt FloatingPointLiteral
Signopt HexFloatingPointLiteral
SignedInteger
HexFloatingPointLiteral:
HexSignificand BinaryExponent FloatTypeSuffixopt
HexSignificand:
HexNumeral
HexNumeral .
0x HexDigitsopt . HexDigits
0X HexDigitsopt . HexDigits
BinaryExponent:
BinaryExponentIndicator SignedInteger
BinaryExponentIndicator:
p
P
где Sign, FloatingPointLiteral, HexNumeral, HexDigits, SignedInteger и FloatTypeSuffix определены в разделах лексической структуры Спецификации языка Java™, за исключением того, что знаки подчеркивания не допускаются между цифрами. Если s не имеет формы FloatValue, то выбрасывается NumberFormatException . В противном случае, s рассматривается как представление точного десятичного значения в обычной «компьютерной научной записи» или как точное шестнадцатеричное значение; это точное числовое значение затем концептуально преобразуется в «бесконечно точное» двоичное значение, которое затем округляется до типа float по обычному правилу округления до ближайшего значения IEEE 754 с плавающей точкой, которое включает сохранение знака нулевого значения. Обратите внимание, что правило округления до ближайшего значения также подразумевает поведение переполнения и потери точности; если точное значение s достаточно велико по модулю (больше или равно (MAX_VALUE + ulp(MAX_VALUE)/2), то округление до float даст бесконечность, и если точное значение s достаточно мало по модулю (меньше или равно MIN_VALUE/2), то округление до float даст ноль. Наконец, после округления возвращается объект Float, представляющий это значение float.

Для интерпретации локальных строковых представлений значения с плавающей точкой используйте подклассы NumberFormat.

Обратите внимание, что определяющие формат спецификаторы в конце, спецификаторы, определяющие тип литерала с плавающей точкой (1.0f — значение с плавающей точкой; float — значение с плавающей точкой), не влияют на результаты этого метода. Другими словами, числовое значение входной строки преобразуется непосредственно в целевой тип с плавающей точкой. В общем случае последовательность преобразований, строка в double, а затем double в float, не эквивалентна непосредственному преобразованию строки в float. Например, если сначала преобразовать в промежуточное значение double и затем в float, строка
"1.00000017881393421514957253748434595763683319091796875001d"
приводит к значению с плавающей точкой 1.0000002f; если строка преобразуется непосредственно в float, 1.0000001f даст результат.

Чтобы избежать вызова этого метода для неверной строки и получения исключения NumberFormatException, документация Double.valueOf содержит регулярное выражение, которое можно использовать для проверки входных данных.

Параметры:
s - строка, подлежащая разбору.
Возвращает:
объект Float, содержащий значение, представленное аргументом String.
Выбрасывает:
NumberFormatException - если строка не содержит разборного числа.

valueOf

public static Float valueOf(float f)

Возвращает экземпляр Float, представляющий заданное значение float. Если новый экземпляр Float не требуется, этот метод обычно следует использовать вместо конструктора Float(float), так как этот метод, вероятно, обеспечит значительно лучшую производительность в отношении памяти и времени за счёт кэширования часто запрашиваемых значений.

Параметры:
f - значение с плавающей запятой.
Возвращает:
экземпляр Float, представляющий f.
С:
1.5

parseFloat

public static float parseFloat(String s)
                        throws NumberFormatException

Возвращает новый экземпляр float, инициализированный значением, представленным указанной строкой String, как выполняется методом valueOf класса Float.

Параметры:
s - строка, подлежащая разбору.
Возвращает:
значение с плавающей запятой, представленное строковым аргументом.
Выбрасывает:
NullPointerException - если строка равна null
NumberFormatException - если строка не содержит разборного float.
С:
1.2
См. также:
valueOf(String)

isNaN

public static boolean isNaN(float v)

Возвращает true, если указанное число является значением "Не число" (NaN), false в противном случае.

Параметры:
v - значение для проверки.
Возвращает:
true если аргумент равен NaN; false в противном случае.

isInfinite

public static boolean isInfinite(float v)

Возвращает true, если указанное число имеет бесконечно большую величину, false в противном случае.

Параметры:
v - значение для проверки.
Возвращает:
true если аргумент равен положительной или отрицательной бесконечности; false в противном случае.

isFinite

public static boolean isFinite(float f)

Возвращает true, если аргумент представляет конечное значение с плавающей запятой; возвращает false в противном случае (для аргументов NaN и бесконечности).

Параметры:
f - значение с плавающей запятой для проверки
Возвращает:
true если аргумент представляет конечное значение с плавающей запятой, false в противном случае.
С:
1.8

isNaN

public boolean isNaN()

Возвращает true, если это значение с плавающей запятой является значением "Не число" (NaN), false в противном случае.

Возвращает:
true если значение, представленное этим объектом, равно NaN; false в противном случае.

isInfinite

public boolean isInfinite()

Возвращает true, если это значение с плавающей запятой имеет бесконечно большую величину, false в противном случае.

Возвращает:
true если значение, представленное этим объектом, равно положительной или отрицательной бесконечности; false в противном случае.

toString

public String toString()

Возвращает строковое представление этого объекта Float. Примитивное значение с плавающей запятой, представленное этим объектом, преобразуется в строку точно так же, как и методом toString с одним аргументом.

Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого объекта.
См. также:
toString(float)

byteValue

public byte byteValue()

Возвращает значение этого объекта Float в виде типа byte после сужающего преобразования примитивного типа.

Переопределяет:
byteValue в классе Number
Возвращает:
значение float , представленное этим объектом, преобразованное к типу byte

shortValue

public short shortValue()

Возвращает значение этого объекта Float в виде типа short после сужающего преобразования примитивного типа.

Переопределяет:
shortValue в классе Number
Возвращает:
значение float , представленное этим объектом, преобразованное к типу short
С:
1.1

intValue

public int intValue()

Возвращает значение этого объекта Float в виде типа int после сужающего преобразования примитивного типа.

Определено в:
intValue в классе Number
Возвращает:
значение float , представленное этим объектом, преобразованное к типу int

longValue

public long longValue()

Возвращает значение этого объекта Float в виде типа long после сужающего преобразования примитивного типа.

Определено в:
longValue в классе Number
Возвращает:
значение float , представленное этим объектом, преобразованное к типу long

floatValue

public float floatValue()

Возвращает значение с плавающей запятой этого объекта Float.

Определено в:
floatValue в классе Number
Возвращает:
значение с плавающей запятой, представленное этим объектом

doubleValue

public double doubleValue()

Возвращает значение этого объекта Float в виде типа double после расширяющего преобразования примитивного типа.

Определено в:
doubleValue в классе Number
Возвращает:
значение float , представленное этим объектом, преобразованное к типу double

hashCode

public int hashCode()

Возвращает код хэша для этого объекта Float. Результатом является целочисленное битовое представление, полученное точно так же, как и методом floatToIntBits(float), примитивного значения с плавающей запятой, представленного этим объектом Float.

Переопределяет:
hashCode в классе Object
Возвращает:
значение кода хэша для этого объекта.
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

hashCode

public static int hashCode(float value)

Возвращает код хэша для значения с плавающей запятой; совместимо с Float.hashCode().

Параметры:
value - значение для хэширования
Возвращает:
значение кода хэша для значения с плавающей запятой.
С:
1.8

equals

public boolean equals(Object obj)

Сравнивает этот объект с указанным объектом. Результат равен true тогда и только тогда, когда аргумент не равен null и является объектом типа Float, представляющим значение с плавающей запятой с тем же значением, что и значение с плавающей запятой, представленное этим объектом. Для этой цели два значения с плавающей запятой считаются одинаковыми, если и только если метод floatToIntBits(float) возвращает идентичное значение int при применении к каждому из них.

Обратите внимание, что в большинстве случаев для двух экземпляров класса Float, f1 и f2, значение f1.equals(f2) равно true тогда и только тогда, когда

f1.floatValue() == f2.floatValue()

также имеет значение true. Однако есть два исключения:

  • Если f1 и f2 оба представляют Float.NaN, то метод equals возвращает true, хотя Float.NaN==Float.NaN имеет значение false.
  • Если f1 представляет +0.0f , а f2 представляет -0.0f, или наоборот, проверка equal имеет значение false, хотя 0.0f==-0.0f имеет значение true.
Это определение позволяет правильно работать хэш-таблицам.
Переопределяет:
equals в классе Object
Параметры:
obj - объект для сравнения
Возвращает:
true если объекты одинаковые; false в противном случае.
См. также:
floatToIntBits(float)

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)

Возвращает значение с плавающей запятой, соответствующее заданному битовому представлению. Аргумент рассматривается как представление значения с плавающей запятой в соответствии с битовой структурой «формата одинарной точности» IEEE 754.

Если аргумент — 0x7f800000, результат — положительная бесконечность.

Если аргумент — 0xff800000, результат — отрицательная бесконечность.

Если аргумент имеет любое значение в диапазоне от 0x7f800001 до 0x7fffffff или в диапазоне от 0xff800001 до 0xffffffff, результат — NaN. Никакая операция с плавающей запятой IEEE 754, предоставляемая Java, не может различать два значения NaN одного типа с разными битовыми шаблонами. Различные значения NaN различаются только с помощью метода Float.floatToRawIntBits.

Во всех остальных случаях, пусть s, e и m — три значения, которые можно вычислить из аргумента:

int s = ((bits >> 31) == 0) ? 1 : -1;
int e = ((bits >> 23) & 0xff);
int m = (e == 0) ?
                (bits & 0x7fffff) << 1 :
                (bits & 0x7fffff) | 0x800000;
Тогда результат с плавающей запятой равен значению математического выражения s·m·2e-150.

Обратите внимание, что этот метод может не быть в состоянии вернуть NaN с точно таким же битовым шаблоном, как аргумент int. IEEE 754 различает два типа NaN: тихие NaN и NaN-сигналы. Различия между двумя типами NaN, как правило, не видны в Java. Арифметические операции над NaN-сигналами преобразуют их в тихие NaN с другим, но часто похожим битовым шаблоном. Однако на некоторых процессорах простое копирование NaN-сигнала также выполняет это преобразование. В частности, копирование NaN-сигнала для возврата в вызывающий метод может выполнить это преобразование. Поэтому intBitsToFloat может не быть в состоянии вернуть float с битовым шаблоном NaN-сигнала. Вследствие этого, для некоторых значений int, floatToRawIntBits(intBitsToFloat(start)) может не быть равно start. Кроме того, какие конкретные битовые шаблоны представляют собой NaN-сигналы, зависит от платформы; хотя все битовые шаблоны NaN, тихие или сигнальные, должны находиться в диапазоне NaN, указанном выше.

Параметры:
bits - целое число.
Возвращает:
значение с плавающей запятой float с таким же битовым шаблоном.

compareTo

public int compareTo(Float anotherFloat)

Сравнивает два объекта Float численно. Есть два способа, которыми сравнения, выполняемые этим методом, отличаются от сравнений, выполняемых операторами числового сравнения языка Java (<, <=, ==, >=, >) при применении к примитивным значениям float:

  • Float.NaN рассматривается этим методом как равный самому себе и большее всех других значений float (включая Float.POSITIVE_INFINITY).
  • 0.0f рассматривается этим методом как большее, чем -0.0f.
Это гарантирует, что естественный порядок объектов Float , налагаемый этим методом, совместим с equals.

Указано в:
compareTo в интерфейсе Comparable<Float>
Параметры:
anotherFloat - объект Float для сравнения.
Возвращает:
значение 0 , если anotherFloat численно равен этому объекту Float; значение меньше 0 , если этот объект Float численно меньше anotherFloat; и значение больше 0 , если этот объект Float численно больше anotherFloat.
С:
1.2
См. также:
Comparable.compareTo(Object)

compare

public static int compare(float f1,
                          float f2)

Сравнивает два заданных значения float. Знак возвращаемого целого значения такой же, как и целого значения, которое было бы возвращено вызовом:

new Float(f1).compareTo(new Float(f2))

Параметры:
f1 - первое значение float для сравнения.
f2 - второе значение float для сравнения.
Возвращает:
значение 0 , если f1 численно равно f2; значение меньше 0 , если f1 численно меньше f2; и значение больше 0 , если f1 численно больше f2.
С:
1.4

sum

public static float sum(float a,
                        float b)

Складывает два значения float вместе, как в операторе +.

Параметры:
a - первый операнд
b - второй операнд
Возвращает:
сумма a и b
С:
1.8
См. также:
BinaryOperator

max

public static float max(float a,
                        float b)

Возвращает большее из двух значений float, как если бы вызывался Math.max.

Параметры:
a - первый операнд
b - второй операнд
Возвращает:
большее из a и b
С:
1.8
См. также:
BinaryOperator

min

public static float min(float a,
                        float b)

Возвращает меньшее из двух значений float, как если бы вызывался Math.min.

Параметры:
a - первый операнд
b - второй операнд
Возвращает:
меньшее из a и b
С:
1.8
См. также:
BinaryOperator

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html

Spec-Zone .ru
спецификации, руководства, описания, API