MATH_NUMERIC Data Type
The MATH_NUMERIC data type is commonly used to represent numeric values in JD Edwards EnterpriseOne software. This data type is defined as follows:
struct tag MATH_NUMERIC
{
ZCHAR String [MAXLEN_MATH_NUMERIC + 1];
BYTE Sign;
ZCHAR EditCode;
short nDecimalPosition;
short nLength;
WORD wFlags;
ZCHAR szCurrency [4];
Short nCurrencyDecimals;
short nPrecision;
};
typedef struct tag MATH_NUMERIC MATH_NUMERIC, FAR *LPMATH_NUMERIC;
This table shows math-numeric elements and their descriptions:
MATH_NUMERIC Element |
Description |
|---|---|
String |
The digits without separators |
Sign |
A minus sign indicates the number is negative. Otherwise, the value is 0x00. |
EditCode |
The data dictionary edit code used to format the number for display |
nDecimalPosition |
The number of digits from the right to place the decimal |
nLength |
The number of digits in the String |
wFlags |
Processing flags |
szCurrency |
Currency code |
nCurrencyDecimals |
The number of currency decimals |
nPrecision |
The data dictionary size |
When assigning MATH_NUMERIC variables, use the MathCopy API. MathCopy copies the information, including Currency, into the location of the pointer. This API prevents any lost data in the assignment.
Initialize local MATH_NUMERIC variables with the ZeroMathNumeric API. If a MATH_NUMERIC is not initialized, invalid information, especially currency information, might be in the data structure, which can result in unexpected results at runtime.
/*************************************************
* Variable Definitions
*************************************************/
MATH_NUMERIC mnVariable = {0};
/************************************************
* Main Processing
************************************************/
ZeroMathNumeric( &mnVariable );
MathCopy( &mnVariable,
&lpDS->mnVariable );