DCL 3.7.4
Loading...
Searching...
No Matches
Numeric.h
Go to the documentation of this file.
1#ifndef __DCL_NUMERIC_H__
2#define __DCL_NUMERIC_H__ 20050305
3
4#ifndef __DCL_CONFIG_H__
5#include <dcl/Config.h>
6#endif
7#ifndef __DCL_STRING_H__
8#include <dcl/String.h>
9#endif
10#ifndef __DCL_EXCEPTION_H__
11#include <dcl/Exception.h>
12#endif
13
14__DCL_BEGIN_NAMESPACE
15
16class Integer;
17class UInteger;
18class Int32;
19class UInt32;
20class Int64;
21class UInt32;
22class Single;
23class Double;
24class Decimal;
25
27{
28public:
29 int __n;
30
31public:
32 Integer(int _n);
33 String toString(unsigned _base = 10) const;
34
38 static String toString(int _n, unsigned _base = 10);
39 static String toString(int _n, const wchar_t* _format);
40
41 static int parse(const wchar_t* _number, unsigned _base = 10)
43
44 static int parse(
45 const wchar_t* _number, unsigned _base,
46 int _default
47 );
48};
49
51{
52public:
53 unsigned int __u;
54
55public:
56 UInteger(unsigned int _u);
57 String toString(unsigned _base = 10) const;
61 static String toString(unsigned int _u, unsigned _base = 10);
62 static String toString(unsigned int _u, const wchar_t* _format);
63
64 static unsigned int parse(const wchar_t* _number, unsigned _base = 10)
66
67 static unsigned int parse(
68 const wchar_t* _number, unsigned _base,
69 unsigned int _default
70 );
71};
72
74{
75public:
76 int32_t __n;
77
78public:
79 Int32(int32_t _n);
80 String toString(unsigned _base = 10) const;
81
82 static String toString(int32_t _n, unsigned _base = 10);
83 static String toString(int32_t _n, const wchar_t* _format);
84
85 static int32_t parse(const wchar_t* _number, unsigned _base = 10)
87
88 static int32_t parse(
89 const wchar_t* _number, unsigned _base,
90 int32_t _default
91 );
92
93 static ByteString toByteString(int32_t _n, unsigned _base = 10);
94};
95
97{
98public:
99 uint32_t __u;
100
101public:
102 UInt32(uint32_t _u);
103 String toString(unsigned _base = 10) const;
104
105 static String toString(uint32_t _u, unsigned _base = 10);
106 static String toString(uint32_t _u, const wchar_t* _format);
107
108 static uint32_t parse(const wchar_t* _number, unsigned _base = 10)
110
111 static uint32_t parse(
112 const wchar_t* _number, unsigned _base,
113 uint32_t _default
114 );
115
116 static ByteString toByteString(uint32_t _u, unsigned _base = 10);
117};
118
120{
121public:
122 int64_t __n;
123
124public:
125 Int64(int64_t _n);
126 String toString(unsigned _base = 10) const;
127
128 static String toString(int64_t _n, unsigned _base = 10);
129 static String toString(int64_t _n, const wchar_t* _format);
130
131 static int64_t parse(const wchar_t* _number, unsigned _base = 10)
133
134 static int64_t parse(
135 const wchar_t* _number, unsigned _base,
136 int64_t _default
137 );
138
139 static ByteString toByteString(int64_t _n, unsigned _base = 10);
140};
141
143{
144public:
145 uint64_t __u;
146
147public:
148 UInt64(uint64_t _u);
149 String toString(unsigned _base = 10) const;
150
151 static String toString(uint64_t _u, unsigned _base = 10);
152 static String toString(uint64_t _u, const wchar_t* _format);
153
154 static uint64_t parse(const wchar_t* _number, unsigned _base = 10)
156
157 static uint64_t parse(
158 const wchar_t* _number, unsigned _base,
159 uint64_t _default
160 );
161
162 static ByteString toByteString(uint64_t _u, unsigned _base = 10);
163};
164
166{
167public:
168 float __f;
169
170public:
171 Single(float _f);
172 String toString() const;
173#if 0
174 // use gcvt
175 static String toString(float _f);
176#endif
177 // use String::format
178 static String toString(float _f, const wchar_t* _format);
179
180 // _number
181 // - glibc : decimal, hex-decimal, infinite or NAM(not-a-number)
182 // - msvcrt : decimal
183 static float parse(const wchar_t* _number)
185
186 static float parse(const wchar_t* _number, float _default);
187
188 static ByteString toByteString(float _f, const char* _format);
189};
190
192{
193public:
194 double __d;
195
196public:
197 Double(double _d);
198 String toString() const;
199#if 0
200 // use gcvt
201 static String toString(double _d);
202#endif
203 // use String::format
204 static String toString(double _d, const wchar_t* _format);
205
206 static double parse(const wchar_t* _number)
208
209 static double parse(const wchar_t* _number, double _default);
210
211 static ByteString toByteString(double _f, const char* _format);
212};
213
215{
216protected:
217 String __value;
218public:
219 Decimal();
220 Decimal(const Decimal& _value);
221#if 0
222 Decimal(int _n);
223 Decimal(unsigned int _u);
224#endif
225 Decimal(int32_t _n);
226 Decimal(uint32_t _u);
227 Decimal(int64_t _n);
228 Decimal(uint64_t _u);
229 Decimal(float f);
230 Decimal(double d);
231 Decimal(const String& strNumber);
232
233 void assign(const wchar_t* _number, int _n);
234
235 const Decimal& operator = (const Decimal& _value);
236#if 0
237 const Decimal& operator = (int _n);
238 const Decimal& operator = (unsigned int _u);
239#endif
240 const Decimal& operator = (int32_t _n);
241 const Decimal& operator = (uint32_t _u);
242 const Decimal& operator = (int64_t _n);
243 const Decimal& operator = (uint64_t _u);
244
245 const Decimal& operator = (float _value);
246 const Decimal& operator = (double _value);
247
248 const Decimal& operator = (const String& strNumber);
249
250 static const char* FORMAT_STRING; // "#,###.####"
251
252 String toString() const;
253 String toStringF(const char* pszDecimalFormat = NULL) const;
254
255 static String toString(const Decimal& _value);
256 static String toStringF(
257 const Decimal& _value,
258 const char* pszDecimalFormat = NULL
259 );
260};
261
262#include <dcl/Numeric.inl>
263
264__DCL_END_NAMESPACE
265
266#endif // __DCL_NUMERIC_H__
#define NULL
Definition Config.h:312
#define DCLCAPI
Definition Config.h:95
#define __DCL_THROWS1(e)
Definition Config.h:152
String toStringF(const char *pszDecimalFormat=NULL) const
Definition Numeric.inl:281
void assign(const wchar_t *_number, int _n)
Definition Numeric.inl:213
String toString() const
Definition Numeric.inl:276
String __value
Definition Numeric.h:217
static const char * FORMAT_STRING
Definition Numeric.h:250
static String toString(const Decimal &_value)
static double parse(const wchar_t *_number) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:846
double __d
Definition Numeric.h:194
Double(double _d)
Definition Numeric.inl:148
String toString() const
Definition Numeric.inl:153
static ByteString toByteString(double _f, const char *_format)
Definition Numeric.cpp:919
static ByteString toByteString(int32_t _n, unsigned _base=10)
Definition Numeric.cpp:355
String toString(unsigned _base=10) const
Definition Numeric.inl:93
int32_t __n
Definition Numeric.h:76
static int32_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:264
Int32(int32_t _n)
Definition Numeric.inl:88
int64_t __n
Definition Numeric.h:122
static ByteString toByteString(int64_t _n, unsigned _base=10)
Definition Numeric.cpp:587
String toString(unsigned _base=10) const
Definition Numeric.inl:117
static int64_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:511
Int64(int64_t _n)
Definition Numeric.inl:112
int __n
Definition Numeric.h:29
Integer(int _n)
Definition Numeric.inl:16
String toString(unsigned _base=10) const
Definition Numeric.inl:21
static int parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.inl:36
float __f
Definition Numeric.h:168
String toString() const
Definition Numeric.inl:141
static float parse(const wchar_t *_number) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:740
Single(float _f)
Definition Numeric.inl:136
static ByteString toByteString(float _f, const char *_format)
Definition Numeric.cpp:813
UInt32(uint32_t _u)
Definition Numeric.inl:100
static uint32_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:391
static ByteString toByteString(uint32_t _u, unsigned _base=10)
Definition Numeric.cpp:470
uint32_t __u
Definition Numeric.h:99
String toString(unsigned _base=10) const
Definition Numeric.inl:105
static ByteString toByteString(uint64_t _u, unsigned _base=10)
Definition Numeric.cpp:692
UInt64(uint64_t _u)
Definition Numeric.inl:124
static uint64_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.cpp:623
String toString(unsigned _base=10) const
Definition Numeric.inl:129
uint64_t __u
Definition Numeric.h:145
unsigned int __u
Definition Numeric.h:53
UInteger(unsigned int _u)
Definition Numeric.inl:52
String toString(unsigned _base=10) const
Definition Numeric.inl:57
static unsigned int parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
Definition Numeric.inl:72