Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

3.5.10 Операции типов с фиксированной точкой

Статическая семантика

Следующие атрибуты определены для каждого подтипа с фиксированной точкой S:
S'Small
S'Small обозначает наименьшее значение типа S. Значение этого атрибута имеет тип universal_real. Small может быть задано для обычных типов с фиксированной точкой, не являющихся производными, с помощью атрибута_определения_пункта (см. 13.3); выражение такого пункта должно быть статичным и положительным.
S'Delta
S'Delta обозначает delta подтипа с фиксированной точкой S. Значение этого атрибута имеет тип universal_real.
S'Fore
S'Fore возвращает минимальное количество символов, необходимых перед десятичной точкой для десятичного представления любого значения подтипа S, предполагая, что представление не включает показатель степени, но включает префикс длиной один символ, который является либо знаком минус, либо пробелом. (Это минимальное число не включает лишние нули или подчёркивания и составляет не менее 2.) Значение этого атрибута имеет тип universal_integer.
S'Aft
S'Aft возвращает количество десятичных цифр, необходимых после десятичной точки для размещения delta подтипа S, если delta подтипа S не больше 0,1, в противном случае атрибут возвращает значение один. (S'Aft – наименьшее положительное целое число N, для которого (10**N)*S'Delta больше или равно одному.) Значение этого атрибута имеет тип universal_integer.
Следующие дополнительные атрибуты определены для каждого подтипа с десятичной фиксированной точкой S:
S'Digits
S'Digits обозначает digits подтипа с десятичной фиксированной точкой S, что соответствует количеству десятичных цифр, которые могут быть представлены в объектах подтипа. Значение этого атрибута имеет тип universal_integer. Его значение определяется следующим образом:
Для первого подтипа или подтипа, определенного с помощью subtype_indication с digits_constraint, digits является значением выражения после ключевого слова digits;
Для подтипа, определенного с помощью subtype_indication без digits_constraint, digits подтипа совпадает с digits подтипа, обозначенного subtype_mark в subtype_indication;
Digits базового подтипа – это наибольшее целое число D, такое что диапазон –(10**D–1)*delta .. +(10**D–1)*delta включён в базовый диапазон типа.
S'Scale
S'Scale обозначает scale подтипа S, определённое как значение N, такое что S'Delta = 10.0**(–N). Масштаб указывает положение точки относительно наиболее значимых цифр значений подтипа S. Значение этого атрибута имеет тип universal_integer.
S'Round
S'Round обозначает функцию со следующим определением:
function S'Round(X : universal_real)
return S'Base
Функция возвращает значение, полученное путём округления X (от нуля, если X находится посередине между двумя значениями типа S).
ПРИМЕЧАНИЕ 1 Все подтипы типа с фиксированной точкой будут иметь одинаковое значение для атрибута Delta при отсутствии delta_constraint (см. J.3).
ПРИМЕЧАНИЕ 2 S'Scale не всегда совпадает с S'Aft для подтипа с десятичной точкой; например, если S'Delta = 1.0, то S'Aft равен 1, а S'Scale равен 0.
ПРИМЕЧАНИЕ 3 Предопределённые операции типа с фиксированной точкой включают операцию присваивания, квалификацию, проверки принадлежности, явное преобразование в и из других числовых типов. Они также включают реляционные операторы и следующие предопределённые арифметические операторы: бинарные и унарные операторы сложения – и +, операторы умножения и унарный оператор abs.
ПРИМЕЧАНИЕ 4 Как и для всех типов, объекты типа с фиксированной точкой имеют атрибуты Size и Address (см. 13.3). Другие атрибуты типов с фиксированной точкой определены в A.5.4.


Spec-Zone.ru

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