Decimal Type ("M" Reference)

[This content is no longer valid. For the latest information on "M", "Quadrant", SQL Server Modeling Services, and the Repository, see the Model Citizen blog.]

The Decimal type encompasses all fixed-point or exact numbers.

Operators

The unary operations in the following table take Decimal as a right operand.

Operator Return

+, -

Decimal

The binary operations in the following table take Decimal as a left operand.

Operator Right Operand Return

+, -

Decimal

Decimal

*, /, %

Decimal

Decimal

>, <, <=, >=, ==, !=

Decimal

Logical

The arithmetic operations (+, -, *, /, %) are specialized to return the most specific type of its operands. For example, Decimal9 + Decimal9 returns Decimal9, while Decimal9 + Decimal38 returns Decimal38).

Remarks

The following operations may cause underflow and overflow errors:

  • The predefined unary - operator.

  • The predefined +, -, *, and / binary operators.

  • Explicit numeric conversions from one Number type to another.

If all of the operands are constant expressions, underflow and overflow is a compile error; otherwise, underflow and overflow is a run-time error.

The following operations may cause a divide by zero error:

  • The predefined / and % binary operators.

If the second operand (the denominator) is a constant expression, divide by zero is a compile error; otherwise, divide by zero is a run-time error.

Decimal is an abstract type with the following four concrete subtypes:

  • Decimal9

  • Decimal19

  • Decimal28

  • Decimal38

Code Example

The following code shows the Millimeters field being declared as a Decimal type and receiving the value of 43.1.

Millimeters : Decimal = 43.1;