summaryrefslogtreecommitdiff
path: root/src/classlibnative/bcltype/number.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/classlibnative/bcltype/number.h')
-rw-r--r--src/classlibnative/bcltype/number.h20
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