Spec-Zone.ru › OpenJDK 17

Класс Float

java.lang.Object
java.lang.Number
java.lang.Float
Все реализованные интерфейсы:
Serializable, Comparable<Float>, Constable, ConstantDesc
public final class Float extends Number implements Comparable<Float>, Constable, ConstantDesc
Класс Float оборачивает значение примитивного типа float в объект. Объект типа Float содержит единственное поле типа float.

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

Это класс с основой на значении; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе может произойти непредсказуемое поведение. Например, в будущей версии синхронизация может завершиться сбоем.

Равенство, эквивалентность и сравнение с плавающей точкой

Класс java.lang.Double содержит обсуждение равенства, эквивалентности и сравнения значений с плавающей точкой, которое применимо к значениям float.
С:
1.0
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final int BYTES
Количество байтов, используемых для представления значения float.
static final int MAX_EXPONENT
Максимальный показатель, который может иметь конечная переменная float.
static final float MAX_VALUE
Константа, хранящая наибольшее положительное конечное значение типа float, (2-2-23)·2127.
static final int MIN_EXPONENT
Минимальный показатель, который может иметь нормализованная переменная float.
static final float MIN_NORMAL
Константа, хранящая наименьшее положительное нормализованное значение типа float, 2-126.
static final float MIN_VALUE
Константа, хранящая наименьшее положительное ненулевое значение типа float, 2-149.
static final float NaN
Константа, хранящая значение «не число» (NaN) типа float.
static final float NEGATIVE_INFINITY
Константа, хранящая отрицательную бесконечность типа float.
static final float POSITIVE_INFINITY
Константа, хранящая положительную бесконечность типа float.
static final int SIZE
Количество битов, используемых для представления значения float.
static final Class<Float> TYPE
Экземпляр Class, представляющий примитивный тип float.

Краткое описание конструкторов

Конструктор Описание
Float(double value)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Использование этого конструктора редко оправдано.
Float(float value)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Использование этого конструктора редко оправдано.
Float(String s)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Использование этого конструктора редко оправдано.

Краткое описание методов

Модификатор и тип Метод Описание
byte byteValue()
Возвращает значение этого Float в виде byte после сужающего преобразования примитивного типа.
static int compare(float f1, float f2)
Сравнивает два указанных значения float.
int compareTo(Float anotherFloat)
Сравнивает два объекта Float численно.
Optional<Float> describeConstable()
Возвращает Optional, содержащий номинальный дескриптор для этого экземпляра, который является самим экземпляром.
double doubleValue()
Возвращает значение этого Float в виде double после расширяющего преобразования примитивного типа.
boolean equals(Object obj)
Сравнивает этот объект с указанным объектом.
static int floatToIntBits(float value)
Возвращает представление указанного значения с плавающей запятой в соответствии с битовым представлением "формата single" IEEE 754.
static int floatToRawIntBits(float value)
Возвращает представление указанного значения с плавающей запятой в соответствии с битовым представлением "формата single" IEEE 754, сохраняя значения Not-a-Number (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 является Not-a-Number (NaN), false в противном случае.
static boolean isNaN(float v)
Возвращает true если указанное число является значением Not-a-Number (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.
Float resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот экземпляр как ConstantDesc, результатом чего является сам экземпляр.
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", 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 может быть удалён в будущей версии.
Использование этого конструктора редко уместно. Используйте parseFloat(String) для преобразования строки в примитивное значение float или valueOf(String) для преобразования строки в объект Float.
Создаёт новый объект Float , представляющий значение с плавающей запятой типа float , заданное строкой. Строка преобразуется в значение с плавающей запятой так, как будто это делает метод valueOf.
Параметры:
s - строка, которая должна быть преобразована в число с плавающей запятой Float.
Исключения:
NumberFormatException - если строка не содержит числа, подлежащего разбору.

Подробное описание методов

toString

public static String toString(float f)
Возвращает строковое представление аргумента. Все упомянутые ниже символы являются 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.

Parameters:
f - the float to be converted.
Returns:
a string representation of the argument.

toHexString

public static String toHexString(float f)
Возвращает шестнадцатеричное строковое представление аргумента. Все упоминаемые ниже символы являются символами 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 - преобразуемое значение с плавающей точкой.
Возвращает:
шестнадцатеричное строковое представление аргумента.
С:
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; 1.0d - значение double), не влияют на результаты этого метода. Другими словами, числовое значение входной строки преобразуется непосредственно в целевой тип с плавающей точкой. В общем случае последовательность преобразований, строка в double, а затем double в float, не эквивалентна преобразованию строки непосредственно в float. Например, если сначала преобразовать в промежуточное значение double а затем в float, строка
"1.00000017881393421514957253748434595763683319091796875001d"
даст значение float 1.0000002f; если строка преобразована непосредственно в float, результат 1.0000001f.

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

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

valueOf

public static Float valueOf(float f)
Возвращает экземпляр Float, представляющий указанное значение float. Если новый экземпляр Float не требуется, этот метод обычно следует использовать вместо конструктора Float(float), поскольку этот метод, вероятно, обеспечит значительно лучшую производительность по памяти и времени за счёт кэширования часто запрашиваемых значений.
Parameters:
f - значение типа float.
Returns:
экземпляр Float, представляющий f.
Since:
1.5

parseFloat

public static float parseFloat(String s) throws NumberFormatException
Возвращает новый экземпляр float, инициализированный значением, представленным указанной строкой String, как выполняется метод valueOf класса Float.
Parameters:
s - строка, подлежащая разбору.
Returns:
значение float, представленное строковым аргументом.
Throws:
NullPointerException - если строка равна null
NumberFormatException - если строка не содержит разбираемого float.
Since:
1.2
See Also:
  • valueOf(String)

isNaN

public static boolean isNaN(float v)
Возвращает true, если указанное число является значением Not-a-Number (NaN), false в противном случае.
Parameters:
v - значение, подлежащее проверке.
Returns:
true если аргумент равен NaN; false в противном случае.

isInfinite

public static boolean isInfinite(float v)
Возвращает true, если указанное число имеет бесконечно большую величину, false в противном случае.
Parameters:
v - значение, подлежащее проверке.
Returns:
true если аргумент представляет собой положительную или отрицательную бесконечность; false в противном случае.

isFinite

public static boolean isFinite(float f)
Возвращает true, если аргумент является конечным числом с плавающей точкой; возвращает false в противном случае (для аргументов NaN и бесконечности).
Parameters:
f - значение float для проверки
Returns:
true если аргумент является конечным числом с плавающей точкой, false в противном случае.
Since:
1.8

isNaN

public boolean isNaN()
Возвращает true, если это значение Float является Not-a-Number (NaN), false в противном случае.
Returns:
true если значение, представленное этим объектом, равно NaN; false в противном случае.

isInfinite

public boolean isInfinite()
Возвращает true, если это значение Float имеет бесконечно большую величину, false в противном случае.
Returns:
true если значение, представленное этим объектом, равно положительной или отрицательной бесконечности; false в противном случае.

toString

public String toString()
Возвращает строковое представление этого объекта Float . Примитивное значение float , представленное этим объектом, преобразуется в строку String точно так же, как если бы это выполнял метод toString с одним аргументом.
Overrides:
toString в классе Object
Returns:
строковое представление этого объекта.
See Also:
  • toString(float)

byteValue

public byte byteValue()
Возвращает значение этого объекта Float как byte после сужения примитивного преобразования.
Overrides:
byteValue в классе Number
Returns:
значение float , представленное этим объектом, преобразованное к типу byte
See Java Language Specification:
5.1.3 Сужение примитивного преобразования

shortValue

public short shortValue()
Возвращает значение этого Float в виде short после преобразования сужающего типа.
Overrides:
shortValue в классе Number
Returns:
значение float , представленное этим объектом, преобразованное в тип short
См. Спецификацию языка Java:
5.1.3 Преобразование сужающего типа
Since:
1.1

intValue

public int intValue()
Возвращает значение этого Float как int после преобразования сужающего типа.
Specified by:
intValue в классе Number
Returns:
значение float , представленное этим объектом, преобразованное в тип int
См. Спецификацию языка Java:
5.1.3 Преобразование сужающего типа

longValue

public long longValue()
Возвращает значение этого Float как long после преобразования сужающего типа.
Specified by:
longValue в классе Number
Returns:
значение float , представленное этим объектом, преобразованное в тип long
См. Спецификацию языка Java:
5.1.3 Преобразование сужающего типа

floatValue

public float floatValue()
Возвращает значение с плавающей запятой этого Float объекта.
Specified by:
floatValue в классе Number
Returns:
значение с плавающей запятой, представленное этим объектом

doubleValue

public double doubleValue()
Возвращает значение этого Float в виде double после преобразования расширяющего типа.
Specified by:
doubleValue в классе Number
Returns:
значение float , представленное этим объектом, преобразованное в тип double
См. Спецификацию языка Java:
5.1.2 Преобразование расширяющего типа

hashCode

public int hashCode()
Возвращает хэш-код для этого Float объекта. Результатом является целочисленное битовое представление, точно такое же, как и в методе floatToIntBits(float), примитивного значения с плавающей точкой float , представленного этим объектом Float.
Overrides:
hashCode в классе Object
Returns:
значение хэш-кода для этого объекта.
См. Также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

hashCode

public static int hashCode(float value)
Возвращает хэш-код для значения с плавающей точкой; совместимо с Float.hashCode().
Parameters:
value - значение для хэширования
Returns:
значение хэш-кода для значения с плавающей точкой.
Since:
1.8

equals

public boolean equals(Object obj)
Сравнивает этот объект с указанным объектом. Результатом является true тогда и только тогда, когда аргумент не null и является объектом типа Float, представляющим значение float, равное значению, представленному этим объектом. Для этой цели два значения float считаются одинаковыми, если и только если метод floatToIntBits(float) возвращает идентичное int значение, применённое к каждому из них.
Overrides:
equals в классе Object
Примечание API:
Этот метод определён с использованием floatToIntBits(float), а не оператора == для значений типа float, так как оператор == не определяет отношение эквивалентности, а для удовлетворения контракта equals необходимо реализовать отношение эквивалентности; см. данное обсуждение для получения подробностей о плавающей точке равенства и эквивалентности.
Параметры:
obj - объект для сравнения
Возвращает:
true если объекты одинаковы; false в противном случае.
См. Спецификацию языка Java:
15.21.1 Операторы числового равенства == и !=
См. также:
  • floatToIntBits(float)

floatToIntBits

public static int floatToIntBits(float value)
Возвращает представление заданного значения с плавающей точкой согласно битовому представлению формата «single» 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)
Возвращает представление указанного значения с плавающей точкой согласно битовому представлению формата «single» IEEE 754, сохраняя значения «Not-a-Number» (NaN).

Бит 31 (выбираемый маской 0x80000000) представляет знак числа с плавающей точкой. Бита 30-23 (выбираемые маской 0x7f800000) представляют экспоненту. Бита 22-0 (выбираемые маской 0x007fffff) представляют мантиссу числа с плавающей точкой.

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

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

Если аргумент — NaN, результат — целое число, представляющее фактическое значение NaN. В отличие от метода floatToIntBits, метод floatToRawIntBits не сводит все битовые шаблоны, кодирующие NaN, к одному «каноническому» значению NaN.

Во всех случаях результат — целое число, которое, будучи передано в метод intBitsToFloat(int), произведёт значение с плавающей точкой, такое же как аргумент к floatToRawIntBits.

Параметры:
value - число с плавающей точкой.
Возвращает:
биты, представляющие число с плавающей точкой.
Since:
1.3

intBitsToFloat

public static float intBitsToFloat(int bits)
Возвращает значение с плавающей точкой, соответствующее заданному представлению в двоичном коде. Аргумент рассматривается как представление значения с плавающей точкой в соответствии с битовой структурой «формата single» стандарта 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 численно. Этот метод накладывает полное упорядочение на объекты типа Float с двумя различиями по сравнению с неполным порядком, определенным операторами численного сравнения языка Java (<, <=, ==, >=, >) для значений float.
  • NaN не упорядочен по отношению к другим значениям и не равен самому себе в соответствии с операторами сравнения. Этот метод выбирает определение NaN как равного самому себе и большего, чем все другие значения double (включая Float.POSITIVE_INFINITY).
  • Положительный и отрицательный нули сравниваются численно как равные, но являются различными и различимыми значениями. Этот метод выбирает определение положительного нуля (+0.0f) как большего, чем отрицательный ноль (-0.0f).
Это гарантирует, что естественный порядок объектов типа Float по этому методу согласован с equals; см. это обсуждение для подробностей о сравнении и упорядочении чисел с плавающей точкой.
Унаследован от:
compareTo в интерфейсе Comparable<Float>
Параметры:
anotherFloat - объект Float для сравнения.
Возвращает:
значение 0 если anotherFloat численно равен этому Float; значение меньше 0 если этот Float численно меньше anotherFloat; и значение больше 0 если этот Float численно больше anotherFloat.
См. Спецификацию языка Java:
15.20.1 Операторы численного сравнения <, <=, >, и >=
С:
1.2

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

сумма

public static float sum(float a, float b)
Складывает два значения float вместе, как если бы использовался оператор +.
Параметры:
a - первый операнд
b - второй операнд
Возвращает:
сумму a и b
См. Спецификацию языка Java:
4.2.4 Операции с плавающей точкой
С:
1.8
См. также:
  • BinaryOperator

макс

public static float max(float a, float b)
Возвращает большее из двух значений float так, как если бы было вызвано Math.max.
Параметры:
a - первый операнд
b - второй операнд
Возвращает:
большее из a и b
С:
1.8
См. также:
  • BinaryOperator

мин

public static float min(float a, float b)
Возвращает меньшее из двух значений float так, как если бы было вызвано Math.min.
Параметры:
a - первый операнд
b - второй операнд
Возвращает:
меньшее из a и b
С:
1.8
См. также:
  • BinaryOperator

describeConstable

public Optional<Float> describeConstable()
Возвращает Optional содержащий номинальное описание для этого экземпляра, которое является самим экземпляром.
Задано:
describeConstable в интерфейсе Constable
Возвращает:
a Optional описывающий экземпляр Float
С:
12

resolveConstantDesc

public Float resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот экземпляр как ConstantDesc, результат которого — сам экземпляр.
Задано:
resolveConstantDesc в интерфейсе ConstantDesc
Параметры:
lookup - игнорируется
Возвращает:
экземпляр Float
С:
12

© 1993, 2021, 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/17/docs/api/java.base/java/lang/Float.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API