Ada Reference Manual (Ada 2022)
3.3.2 Number Declarations
A number_declaration declares a named number.
Syntax
Name Resolution Rules
The static_expression given for a number_declaration is expected to be of any numeric type.
A name that denotes a number_declaration is interpreted as a value of a universal type, unless the expected type for the name is a non-numeric type with an Integer_Literal or Real_Literal aspect, in which case it is interpreted to be of its expected type.
Legality Rules
The static_expression given for a number declaration shall be a static expression, as defined by 4.9.
Static Semantics
The named number denotes a value of type universal_integer if the type of the static_expression is an integer type. The named number denotes a value of type universal_real if the type of the static_expression is a real type.
The value denoted by the named number is the value of the static_expression, converted to the corresponding universal type.
Dynamic Semantics
The elaboration of a number_declaration has no effect.
Examples
Examples of number declarations:
Two_Pi : constant := 2.0*Ada.Numerics.Pi;
-- a real number (see A.5)
-- a real number (see A.5)
Max : constant := 500; -- an integer number
Max_Line_Size : constant := Max/6; -- the integer 83
Power_16 : constant := 2**16; -- the integer 65_536
One, Un, Eins : constant := 1; -- three different names for 1
Max_Line_Size : constant := Max/6; -- the integer 83
Power_16 : constant := 2**16; -- the integer 65_536
One, Un, Eins : constant := 1; -- three different names for 1