diff options
Diffstat (limited to 'src/classlibnative/bcltype/number.h')
-rw-r--r-- | src/classlibnative/bcltype/number.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/classlibnative/bcltype/number.h b/src/classlibnative/bcltype/number.h index 22c74cacdb..480e6ad6a0 100644 --- a/src/classlibnative/bcltype/number.h +++ b/src/classlibnative/bcltype/number.h @@ -19,13 +19,21 @@ static const double LOG10V2 = 0.30102999566398119521373889472449; // DRIFT_FACTOR = 1 - LOG10V2 - epsilon (a small number account for drift of floating point multiplication) static const double DRIFT_FACTOR = 0.69; +enum NUMBER_KIND : int { + NUMBER_KIND_Unknown = 0, + NUMBER_KIND_Integer = 1, + NUMBER_KIND_Decimal = 2, + NUMBER_KIND_Double = 3 +}; + struct NUMBER { - int precision; - int scale; - int sign; - wchar_t digits[NUMBER_MAXDIGITS + 1]; - wchar_t* allDigits; - NUMBER() : precision(0), scale(0), sign(0), allDigits(NULL) {} + int precision; // 0 + int scale; // 4 + int sign; // 8 + NUMBER_KIND kind; // 12 + wchar_t* allDigits; // 16 + wchar_t digits[NUMBER_MAXDIGITS + 1]; // 20 or 24 + NUMBER() : precision(0), scale(0), sign(0), kind(NUMBER_KIND_Unknown), allDigits(NULL) {} }; class COMNumber |