Ada Reference Manual (Ada 2022) — Legal Information

# 3.3.2 Number Declarations

1
A number_declaration declares a named number.

#### Syntax

2
number_declaration ::=
defining_identifier_list : constant := static_expression;

#### Name Resolution Rules

3
The static_expression given for a number_declaration is expected to be of any numeric type.
3.1/5
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

4/5
The static_expression given for a number declaration shall be a static expression, as defined by 4.9.

#### Static Semantics

5
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.
6
The value denoted by the named number is the value of the static_expression, converted to the corresponding universal type.

#### Dynamic Semantics

7
The elaboration of a number_declaration has no effect.

#### Examples

8
Examples of number declarations:
9
Two_Pi : constant := 2.0*Ada.Numerics.Pi;
-- a real number (see A.5)
10/2
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

Ada 2005 and 2012 Editions sponsored in part by Ada-Europe