GUI for .NET Programming

ABL maps the ABL DECIMAL to the .NET System.UInt64 because the unsigned value of System.UInt64 can be twice as large as the maximum signed integer value that an ABL INT64 can represent. However, the ABL DECIMAL can hold values many times larger than a .NET System.UInt64. The following example raises a run-time error because dResult is too large for the System.Math.Max( ) method to compare as a System.UInt64:

DEFINE VARIABLE dResult AS DECIMAL NO-UNDO. DEFINE VARIABLE dTest AS DECIMAL NO-UNDO. ASSIGN dResult = 200000000000000000000 dTest = System.UInt64:MaxValue dResult = System.Math:Max(dTest AS UNSIGNED-INT64, dResult AS UNSIGNED-INT64). /* Run-time error */ |

© 2017 Progress Software Corporation and/or one of its subsidiaries or affiliates. All rights reserved.

Progress® OpenEdge® Release 11.7