Spec-Zone.ru › Ada 2012
Справочник по Ada 2012

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 подтипа такие же, как у подтипа, обозначенного 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 (от 0, если X находится посредине между двумя значениями типа S).
ПРИМЕЧАНИЯ
45 Все подтипы типа с фиксированной точкой будут иметь одинаковое значение для атрибута Delta, при отсутствии delta_constraint (см. J.3).
46 S'Scale не всегда совпадает с S'Aft для десятичного подтипа; например, если S'Delta = 1,0, то S'Aft равен 1, а S'Scale равен 0.
47 Предопределенные операции типа с фиксированной точкой включают операцию присваивания, квалификацию, тесты на принадлежность и явное преобразование к другим числовым типам и из них. Они также включают реляционные операторы и следующие предопределённые арифметические операторы: бинарные и унарные операторы сложения – и +, операторы умножения и унарный оператор abs.
48 Как и для всех типов, объекты типа с фиксированной точкой имеют атрибуты Size и Address (см. 13.3). Другие атрибуты типов с фиксированной точкой определены в A.5.4.


Spec-Zone.ru

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