Starting with dBASE PLUS 8, a new High Precision Math (HPM) library, and wrapper has been added to the product.  This new library implements the IEEE 754 Standard for Floating Point Arithmetic.

Note:  More information on the IEEE 754 standard can be found at the following web address:  http://en.wikipedia.org/wiki/IEEE_754-2008  To quote Wikipedia on the subject:  “The IEEE Standard for Floating-Point Arithmetic (IEEE 754) is a technical standard for floating-point computation established in 1985 by the Institute of Electrical and Electronics Engineers (IEEE).  Many hardware floating point units use the IEEE 754 standard.  The current version, IEEE 754-2008 published in August 2008, includes nearly all of the original IEEE 754-1985 standard and the IEEE Standard for Radix-Independent Floating-Point Arithmetic (IEEE 854-1987).  The international standard ISO/IEC/IEEE 60559:2011 (with identical content to IEEE 754) has been approved for adoption through JTC1/SC 25 under the ISO/IEEE PSDO Agreement and published.

dBASE wraps this standard around our number handling interface, which supports the following concepts:

·         Arithmetic formats: sets of binary and decimal floating-point data, which consist of finite numbers (including signed zeros and subnormal numbers), infinities, and special "not a number" values (NaNs)

·         Interchange formats: encodings (bit strings) that may be used to exchange floating-point data in an efficient and compact form

·         Rounding rules: properties to be satisfied when rounding numbers during arithmetic and conversions

·         Operations: arithmetic and other operations on arithmetic formats

·         Exception handling: indications of exceptional conditions (such as division by zero, overflow, etc.)

When using a decimal floating point format the decimal representation will be preserved using:

·         7 decimal digits for decimal32

·         16 decimal digits for decimal64

·         34 decimal digits for decimal128

The main areas in dBASE you want to review include:

·         The new NUMBER Object included in dBASE

·         SET PRECISION TO...

·         SET DECIMAL TO ...