Go to the first, previous, next, last section, table of contents.
Static Semantics

The library package Decimal has the following declaration:

package Ada.Decimal is
pragma Pure(Decimal);

Max_Scale : constant := implementationdefined;
Min_Scale : constant := implementationdefined;

Min_Delta : constant := 10.0**(Max_Scale);
Max_Delta : constant := 10.0**(Min_Scale);

Max_Decimal_Digits : constant := implementationdefined;

generic
type Dividend_Type is delta <> digits <>;
type Divisor_Type is delta <> digits <>;
type Quotient_Type is delta <> digits <>;
type Remainder_Type is delta <> digits <>;
procedure Divide (Dividend : in Dividend_Type;
Divisor : in Divisor_Type;
Quotient : out Quotient_Type;
Remainder : out Remainder_Type);
pragma Convention(Intrinsic, Divide);

end Ada.Decimal;

Max_Scale is the largest N such that 10.0**(N) is allowed as a decimal
type's delta. Its type is universal_integer.

Min_Scale is the smallest N such that 10.0**(N) is allowed as a decimal
type's delta. Its type is universal_integer.

Min_Delta is the smallest value allowed for delta in a
decimal_fixed_point_definition. Its type is universal_real.

Max_Delta is the largest value allowed for delta in a
decimal_fixed_point_definition. Its type is universal_real.

Max_Decimal_Digits is the largest value allowed for digits in a
decimal_fixed_point_definition. Its type is universal_integer.
Static Semantics

The effect of Divide is as follows. The value of Quotient is
Quotient_Type(Dividend/Divisor). The value of Remainder is
Remainder_Type(Intermediate), where Intermediate is the difference
between Dividend and the product of Divisor and Quotient; this result is
computed exactly.
Implementation Requirements

Decimal.Max_Decimal_Digits shall be at least 18.

Decimal.Max_Scale shall be at least 18.

Decimal.Min_Scale shall be at most 0.
NOTES

(1) The effect of division yielding a quotient with control over
rounding versus truncation is obtained by applying either the function
attribute Quotient_Type'Round or the conversion Quotient_Type to the
expression Dividend/Divisor.
Go to the first, previous, next, last section, table of contents.