1

The following attribute
is defined for every floating point subtype S:

2/1

S'Digits

{*8652/0004*}
{*AI95-00203-01*}
S'Digits denotes the requested decimal precision for the subtype S. The
value of this attribute is of the type *universal_integer*. The
requested decimal precision of the base subtype of a floating point type
*T* is defined to be the largest value of *d* for which

ceiling(*d* * log(10) / log(T'Machine_Radix)) + *g* 1
<= T'Model_Mantissa

where g is 0 if Machine_Radix is a positive power of 10 and 1 otherwise.

ceiling(

where g is 0 if Machine_Radix is a positive power of 10 and 1 otherwise.

NOTES

3

36 {*predefined
operations (of a floating point type)* [partial]} The
predefined operations of a floating point type include the assignment
operation, qualification, the membership tests, and explicit conversion
to and from other numeric types. They also include the relational operators
and the following predefined arithmetic operators: the binary and unary
adding operators – and +, certain multiplying operators, the unary
operator **abs**, and the exponentiation operator.

4

37 As for all types, objects of a floating
point type have Size and Address attributes (see 13.3).
Other attributes of floating point types are defined in A.5.3.

4.a/2

{*8652/0004*}
{*AI95-00203-01*}
**Corrigendum:** Corrected the formula for Digits
when the Machine_Radix is 10.

Sponsored by **Ada-Europe**