Переменные с плавающей запятой (Floating-Point Variables)

(*Примечание. По русски мы привыкли говорить «С плавающей запятой», но более верный дословный перевод «С плавающей точкой», ну и в коде пишется именно Точка, потому будет использоваться исключительно второй вариант)

В различных скалярных расчетах доступны переменные с плавающей точкой как одинарной, так и двойной точности. Как правило термин «с плавающей точкой» относится как к одинарной, так и двойной точности. Пример определения переменных с плавающей точкой:

float a, b = 1.5; // с плавающей точкой одинарной точности
double c, d = 2.0LF; // с плавающей запятой двойной точности

Как входящее значение к блоку обработки, переменная с плавающей точкой одинарной или двойной точности должна соответствовать определению IEEE 754 для фиксированного или динамического диапазона. Переменные с плавающей точкой внутри шейдера так же кодируются в соответствии со спецификацией IEEE 754 для значений с плавающей точкой одинарной точности (логически, не обязательно физически). Хотя кодировки соответствуют IEEE 754, операции (сложение, умножение и другие) не обязательно выполняются в соответствии с требованиями IEEE 754. Смотри раздел 4.7.1 “Range and Precision” для более подробной информации о точности использования NaN (Not a Number — не число) и Infs (positive or negative infinities — положительные или отрицательные бесконечности):

Константы с плавающей точкой определяются следующим образом:

Плавающая константа:
дробная-константа степеньопционально плавающий-суффиксопционально
цифровая-последовательность степеньопционально плавающий-суффиксопционально

дробная-константа:
цифровая-последовательность . цифровая-последовательность
цифровая-последовательность .
. цифровая-последовательность

степень:
e знакопционально цифровая-последовательность
E знакопционально цифровая-последовательность

знак: один из
+ —

цифровая-последовательность:
цифра
цифровая-последовательность цифр

плавающий-суффикс: один из
f  F  lf  LF

Десятичная точка ( . ) не нужна, если присутствует экспоненциальная часть. Так же как и с целочисленными, запрещено использовать пробелы, в том числе перед суффиксами. При обработке символов максимальный знак, соответствующий указанному выше, будет распознан до того, как будет запущен следующий знак. Когда присутствует суффикс «lf» или «LF», значение имеет тип double. В противном случае значение имеет тип float. Ведущий унарный знак минуса (-) интерпретируется как унарный оператор и не является частью константы с плавающей запятой.

Main Admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *