Spec-Zone.ru › OpenJDK 21

Класс 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
См. также:
  • Стандарт IEEE для арифметики с плавающей точкой
  • Сериализованная форма

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

Модификатор и тип Поле Описание
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 PRECISION
Количество битов в мантиссе значения 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 float float16ToFloat(short floatBinary16)
Возвращает значение float , ближайшее к числовому значению аргумента, значение с плавающей запятой binary16, закодированное в short.
static short floatToFloat16(float f)
Возвращает значение с плавающей запятой binary16, закодированное в short, ближайшее по значению к аргументу.
static int floatToIntBits(float value)
Возвращает представление указанного значения с плавающей запятой в соответствии с битовым представлением IEEE 754 «формата одинарной точности».
static int floatToRawIntBits(float value)
Возвращает представление указанного значения с плавающей запятой в соответствии с битовым представлением 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).
См. также:
  • Значения константных полей

SIZE

public static final int SIZE
Количество битов, используемых для представления значения float.
С:
1.5
См. также:
  • Значения константных полей

PRECISION

public static final int PRECISION
Количество битов в мантиссе значения float. Это параметр N в разделе 4.2.3 спецификации языка Java.
С:
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 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)
Возвращает строковое представление аргумента float. Все упоминаемые ниже символы являются символами ASCII.
  • Если аргумент равен NaN, результат — строка "NaN".
  • В противном случае, результат — строка, представляющая знак и модуль (абсолютное значение) аргумента. Если знак отрицательный, первый символ результата — '-' ('\u002D'); если знак положительный, знак в результате не отображается. Что касается модуля m:
    • Если m — бесконечность, она представляется символами "Infinity"; таким образом, положительная бесконечность даёт результат "Infinity", а отрицательная бесконечность — результат "-Infinity".
    • Если m равно нулю, она представляется символами "0.0"; таким образом, отрицательный ноль даёт результат "-0.0", а положительный ноль — результат "0.0".
    • В противном случае m положительно и конечно. Оно преобразуется в строку в два этапа:
      • Выбор десятичного числа: Выбирается чётко определённое десятичное число dm для представления m. Это десятичное число (почти всегда) является наиболее коротким, которое округляется до m в соответствии с политикой округления до ближайшего значения арифметики с плавающей запятой IEEE 754.
      • Форматирование в строку: Десятичное число dm форматируется как строка, либо в обычном, либо в компьютерном научном формате, в зависимости от его значения.

Десятичное число — это число вида s×10i для некоторых (уникальных) целых чисел s > 0 и i, таких что s не кратно 10. Эти целые числа являются соответственно мантиссой и экспонентой десятичного числа. Длина десятичного числа — (уникальное) положительное целое число n, удовлетворяющее условию 10n-1 ≤ s < 10n.

Десятичное число dm для конечного положительного m определяется следующим образом:

  • Пусть R — множество всех десятичных чисел, которые округляются до m в соответствии с обычной политикой округления до ближайшего значения арифметики с плавающей запятой IEEE 754.
  • Пусть p — минимальная длина среди всех десятичных чисел в R.
  • Если p ≥ 2, пусть T — множество всех десятичных чисел в R с длиной p. В противном случае, пусть T — множество всех десятичных чисел в R с длиной 1 или 2.
  • Определим dm как десятичное число в T, которое наиболее близко к m. Или, если таких десятичных чисел в T два, выбираем то, у которого чётная мантисса.

Выбранное (уникальное) десятичное число dm затем форматируется. Пусть s, i и n — мантисса, экспонента и длина dm соответственно. Кроме того, пусть e = n + i - 1 и пусть s1…sn — обычное десятичное разложение s. Обратите внимание, что s1 ≠ 0 и sn ≠ 0. Ниже, десятичная точка '.' является '\u002E' и индикатор экспоненты 'E' равен '\u0045'.

  • Случай -3 ≤ e < 0: dm форматируется как 0.0…0s1…sn, где ровно -(n + i) нулей находятся между десятичной точкой и s1. Например, 123 × 10-4 форматируется как 0.0123.
  • Случай 0 ≤ e < 7:
    • Подслучай i ≥ 0: dm форматируется как s1…sn0…0.0, где ровно i нулей находятся между sn и десятичной точкой. Например, 123 × 102 форматируется как 12300.0.
    • Подслучай i < 0: dm форматируется как s1…sn+i.sn+i+1…sn, где ровно -i цифр находятся справа от десятичной точки. Например, 123 × 10-1 форматируется как 12.3.
  • Случай e < -3 или e ≥ 7: используется компьютерный научный формат для форматирования dm. Здесь e форматируется так же, как при вызове Integer.toString(int).
    • Подслучай n = 1: dm форматируется как s1.0Ee. Например, 1 × 1023 форматируется как 1.0E23.
    • Подслучай n > 1: dm форматируется как s1.s2…snEe. Например, 123 × 10-21 форматируется как 1.23E-19.

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

Параметры:
f - преобразуемое float.
Возвращает:
строковое представление аргумента.

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; 1.0d - это значение double ), не влияют на результаты этого метода. Другими словами, числовое значение входной строки преобразуется непосредственно в целевой тип с плавающей запятой. В общем случае, последовательность преобразований, строка в double, а затем double в float, не эквивалентна прямому преобразованию строки в float. Например, если сначала преобразовать в промежуточное значение double , а затем в float, строка
"1.00000017881393421514957253748434595763683319091796875001d"
приведёт к значению 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 - значение с плавающей точкой.
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 , если заданное число является значением Не Число (NaN), false в противном случае.
API Note:
Этот метод соответствует операции isNaN, определённой в IEEE 754.
Parameters:
v - значение для проверки.
Returns:
true , если аргумент равен NaN; false в противном случае.

isInfinite

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

isFinite

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

isNaN

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

isInfinite

public boolean isInfinite()
Возвращает true , если это значение с плавающей точкой бесконечно велико по модулю, 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
See Java Language Specification:
5.1.3 Сужение примитивного преобразования
Since:
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 объекта.
Указано в:
floatValue в классе Number
Возвращает:
значение с плавающей запятой, представленное этим объектом

doubleValue

public double doubleValue()
Возвращает значение этого Float в виде double после расширяющего преобразования примитива.
Указано в:
doubleValue в классе Number
Примечание API:
Этот метод соответствует операции convertFormat, определенной в IEEE 754.
Возвращает:
значение float , представленное этим объектом, преобразованное к типу double
См. Спецификацию языка Java:
5.1.2 Расширяющее преобразование примитива

hashCode

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

floatToIntBits

public static int floatToIntBits(float value)
Возвращает представление заданного значения с плавающей запятой в соответствии с битовым представлением формата с плавающей запятой IEEE 754 «single format».

Бит 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 «single format», сохраняя значения Not-a-Number (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 «single format».

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

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

float16ToFloat

public static float float16ToFloat(short floatBinary16)
Возвращает значение с плавающей запятой, ближайшее к численному значению аргумента, значение floating-point binary16, закодированное в short. Преобразование точное; все значения binary16 могут быть точно представлены в float. Особые случаи:
  • Если аргумент равен нулю, результат — ноль с тем же знаком, что и аргумент.
  • Если аргумент равен бесконечности, результат — бесконечность с тем же знаком, что и аргумент.
  • Если аргумент — NaN, результат — NaN.

Формат IEEE 754 binary16

Стандарт IEEE 754 определяет binary16 как 16-битный формат, наряду с 32-битным форматом binary32 (соответствующим типу float ) и 64-битным форматом binary64 (соответствующим типу double ). Формат binary16 похож на другие форматы IEEE 754, за исключением меньшего размера, имея все обычные значения IEEE 754, такие как NaN, знаковые бесконечности, знаковые нули и субнормальные значения. Параметры (JLS 4.2.3) для формата binary16 — N = 11 битов точности, K = 5 битов порядка, Emax = 15 и Emin = -14.
Примечание API:
Этот метод соответствует операции convertFormat, определённой в IEEE 754, от формата binary16 к формату binary32. Действие этого метода аналогично примитивному преобразованию расширения (JLS 5.1.2).
Параметры:
floatBinary16 - значение binary16, подлежащее преобразованию в float
Возвращает:
значение с плавающей запятой, ближайшее к численному значению аргумента, значение floating-point binary16, закодированное в short
С:
20

floatToFloat16

public static short floatToFloat16(float f)
Возвращает значение floating-point binary16, закодированное в short, наиболее близкое по значению к аргументу. Преобразование выполняется в режиме округления до ближайшего чётного round to nearest even rounding mode. Особые случаи:
  • Если аргумент равен нулю, результат — ноль с тем же знаком, что и аргумент.
  • Если аргумент равен бесконечности, результат — бесконечность с тем же знаком, что и аргумент.
  • Если аргумент — NaN, результат — NaN.
Формат binary16 подробнее обсуждается в методе float16ToFloat(short).
Примечание API:
Этот метод соответствует операции convertFormat, определённой в IEEE 754, от формата binary32 к формату binary16. Действие этого метода аналогично примитивному сужающему преобразованию (JLS 5.1.3).
Параметры:
f - значение с плавающей запятой, подлежащее преобразованию в binary16
Возвращает:
значение floating-point binary16, закодированное в short, наиболее близкое по значению к аргументу
С:
20

compareTo

public int compareTo(Float anotherFloat)
Числовое сравнение двух объектов Float. Этот метод накладывает полное упорядочение на объекты Float с двумя отличиями по сравнению с неполным порядком, определённым операторами числового сравнения языка Java (<, <=, ==, >=, >) на значения float.
  • NaN является неупорядоченным по отношению к другим значениям и неравным самому себе в операторах сравнения. Этот метод выбирает определение NaN как равного самому себе и большего, чем все другие значения с плавающей запятой (включая NaN).
  • Положительный и отрицательный ноль сравниваются как числовые равные, но являются различными и различимыми значениями. Этот метод выбирает определение положительного нуля (+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.valueOf(f1).compareTo(Float.valueOf(f2))
 
Параметры:
f1 - первое сравниваемое значение с плавающей запятой.
f2 - второе сравниваемое значение с плавающей запятой.
Возвращает:
значение 0 , если f1 численно равно f2; значение меньше 0 , если f1 численно меньше f2; и значение больше 0 , если f1 численно больше f2.
С:
1.4

sum

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

max

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

min

public static float min(float a, float b)
Возвращает меньшее из двух значений с плавающей запятой, как если бы вызывался Math.min.
Примечание API:
Этот метод соответствует операции нахождения минимума, определённой в IEEE 754.
Параметры:
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, 2023, 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/21/docs/api/java.base/java/lang/Float.html

Spec-Zone.ru

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