Reference & Resources »

Numbers in Delphi

Delphi's Object Pascal is a strongly typed language. That means, that every variable must be declared and that the compiler will check the type of all the variables before the compilation of your program. Without this feature, many errors would only appear at run-time, making them much harder to debug.

A simple example:
   var
     I: integer;
   begin
     I := 0.5;
...results in an error message: Incompatible types: 'integer' and 'Extended'

In Delphi, there are 3 groups of numbers:

  • integer numbers
  • floating point numbers (have a decimal fraction)
  • fixed point numbers (for financial calculations)

Delphi's most important number types are:

Type Range
Integer types
   Byte
   ShortInt
   Word
   SmallInt
   Cardinal
   Integer
   Int64
Floating point types
   Single
   Double
   Extended
   Real: same as Double
Fixed point types
   Currency
 
0 to 255
-127 to 127
0 to 65,535
-32,768 to 32,767
0 to 4,429,967,295
-2,147,483,648 to 2,147,483,647
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
 
7 significant digits, exponent -38 to 38
15 significant digits, exponent -308 to 308
19 significant digits, exponent -4932 to 4932
15 significant digits, exponent -308 to 308
 
50 significant digits, 4 fixed decimal places

Some functions for integer types:

Function Meaning Examples
Pred(I)
Succ(I)
High(Type)
Low(Type)
Predecessor of I
Successor of I
Highest value of a type
Lowest value of a type
Pred(10) returns 9
Succ(10) returns 11
High(Byte) returns 255
Low(Byte) returns 0

Some procedures for integer types:

Procedure Meaning Examples
Inc(I)
Dec(I)
Increment I
Decrement I
Inc(I) is equivalent to I := I+1
Dec(I) is equivalent to I := I-1

Some functions for floating point types that return Int64 values:

Function Meaning Examples
Round(X)
 
Trunc(X)
Round X to the nearest
  integer number (down or up)
Truncate decimal fraction of X
Round(1.4) returns 1
Round(1.6) returns 2
Trunc(1.6) returns 1

Functions to convert numbers to strings that can be displayed:

Function Meaning Examples
IntToStr(I)

IntToHex(I, W)

FloatToStrF(N, F, P, D)

CurrToStrF(N, F, D)

Conversion of integer I
  to string
Hexadecimal representation
  of integer I in width W
Conversion of N in format F
  precision P and D digits
Conversion of currency N
  in format F and D digits
IntToStr(10) returns '10'

IntToHex(43, 3) returns '02B'

FloatToStrF(Pi, ffFixed, 6, 5)
  returns '3.14159'
CurrToStrF(3.25, ffFixed, 2)
  returns '3.25'

Terms used in the table above:

  • Format can be:
     
    • ffFixed: fixed point format, in the form "-ddd.ddd..."
    • ffNumber: number format, in the form "-d,ddd,ddd.ddd...". Same as ffFixed format, except that the result contains thousandth separators.
    • ffGeneral: general number format, the shortest possible decimal string using scientific format
    • ffExponent: scientific format, in the form "-d.ddd...E+dddd"
    • ffCurrency: currency format, controlled by the global variables that are initialized from Currency Format in the International section of the Windows Control Panel.
  • Precision: length of the decimal fraction
  • Digits: total number of significant digits in the result
 
Reference  Crash Course Delphi  FAQ
Tips  Source Code  Downloads  Links

© Copyright 1999-2018 
DelphiLand