Export (0) Print
Expand All


Integers are numbers without decimals. X++ has two integer types:

  • int, which is 32 bits wide

  • int64, which is 64 bits wide

Integers are used especially as control variables in repetitive statements or as indexes in arrays.

The range of an int is: [-2,147,483,647 ; 2,147,483,647].

The range of an int64 is: [-9,223,372,036,854,775,808 ; 9,223,372,036,854,775,808]

integer declaration


int | int64Variable{ ,Variable} ;



identifier [ option ]



arrayoptions | initialization

// Declaration of an integer variable, i
int i;
// Declaration of two int64 variables
int64 i1, i2;
// An integer variable is initialized to the value 100
int i3 = 100;
// Declaration of a dynamic array of integers
int i4[];
Caution noteCaution

If you try to assign the largest integer plus 1 to an int64, you will get the wrong result. This is because it is interpreted as a 32-bit number, and therefore the number is wrapped round and stored as -2,147,483,647 instead. To prevent this, add a "u" to the end of the number, for example: int64 i = 0x8000 0000u (0x8000 0000 is 2,147,483,648).

You can use integer literals anywhere an integer-expression is expected. An integer literal is the integer written directly in the code—for instance, 32768. The range for integers is shown previously, and all integers in this range can be used as literals in X++.

Integers are automatically converted into boolean, enum, and real.

Integers can be used in all expressions, and relational operators and arithmetic operators can be applied. For example:

void element() 
    // Two integer variables are declared and initialized
    int i = 1, j = 2;
    // j is assigned the result of j + ((i + i) DIV 2)
    j +=(i + i) div 2;
    // This results in: j=3
    if (j>2)
        print "J is greater than 2";
        print "J is NOT greater than 2";


int, int64


32 bits or 64 bits

Scope of data type

[-2.147.483.648; 2.147.483.647] or

[-9,223,372,036,854,775,808 ; 9,223,372,036,854,775,808]

Default value


Implicit conversions

Automatically converted to real, boolean, and enum

Explicit conversions

str2int, int2str, str2int64, int642str

Community Additions

© 2014 Microsoft