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

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

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

Следующие атрибуты определены для каждого подтипа с фиксированной точкой S:
S'Small
S'Small обозначает small типа S. Значение этого атрибута имеет тип universal_real. Small может быть указан для обычных типов с фиксированной точкой, не являющихся производными, с помощью attribute_definition_clause (см. 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, в этом случае атрибут возвращает значение 1. (S'Aft — это наименьшее положительное целое число N, для которого (10**N)*S'Delta больше или равно единице.) Значение этого атрибута имеет тип universal_integer.
Следующие дополнительные атрибуты определены для каждого подтипа с десятичной фиксированной точкой S:
S'Digits
S'Digits обозначает digits подтипа с десятичной фиксированной точкой S, что соответствует количеству десятичных цифр, которые можно представить в объектах подтипа. Значение этого атрибута имеет тип universal_integer. Его значение определяется следующим образом:
  • Для первого подтипа или подтипа, определенного с помощью subtype_indication с digits_constraint, цифры являются значением выражения, указанного после ключевого слова digits;
  • Для подтипа, определенного с помощью subtype_indication без digits_constraint, цифры подтипа совпадают с цифрами подтипа, обозначенного subtype_mark в subtype_indication.
  • Цифры базового подтипа — это наибольшее целое число 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).
ПРИМЕЧАНИЯ
37 Все подтипы типа с фиксированной точкой будут иметь одинаковое значение для атрибута Delta при отсутствии delta_constraint (см. J.3).
38 S'Scale не всегда совпадает с S'Aft для подтипа с десятичной точкой; например, если S'Delta = 1,0, то S'Aft равно 1, а S'Scale равно 0.
39 Предварительно определенные операции типа с фиксированной точкой включают операцию присваивания, квалификацию, проверки на принадлежность и явное преобразование в и из других числовых типов. Они также включают реляционные операторы и следующие предварительно определенные арифметические операторы: бинарные и унарные операторы сложения - и +, операторы умножения и унарный оператор abs.
40 Как и для всех типов, объекты типа с фиксированной точкой имеют атрибуты Size и Address (см. 13.3). Другие атрибуты типов с фиксированной точкой определены в A.5.4.


Spec-Zone.ru

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