00001 #ifndef __CDouble__ 00002 #define __CDouble__ 00003 00004 // =========================================================================== 00005 00006 #include "CString.hpp" 00007 00008 // =========================================================================== 00009 00010 using Exponent::Basics::CString; 00011 00012 // =========================================================================== 00013 00014 namespace Exponent 00015 { 00016 namespace Basics 00017 { 00038 class CDouble : public CCountedObject 00039 { 00041 EXPONENT_CLASS_DECLARATION; 00044 // =========================================================================== 00045 00046 public: 00047 00048 // =========================================================================== 00049 00054 CDouble(const double value = 0.0); 00055 00059 virtual ~CDouble(); 00060 00061 // =========================================================================== 00062 00068 CDouble &operator = (const CDouble &value); 00069 00075 CDouble &operator = (const double value); 00076 00082 bool operator == (const CDouble &value); 00083 00089 bool operator == (const double value); 00090 00096 bool operator != (const CDouble &value); 00097 00103 bool operator != (const double value); 00104 00110 CDouble &operator + (const CDouble &value); 00111 00117 CDouble &operator + (const double value); 00118 00124 CDouble &operator - (const CDouble &value); 00125 00131 CDouble &operator - (const double value); 00132 00138 CDouble &operator * (const CDouble &value); 00139 00145 CDouble &operator * (const double value); 00146 00152 CDouble &operator / (const CDouble &value); 00153 00159 CDouble &operator / (const double value); 00160 00166 CDouble &operator += (const CDouble &value); 00167 00173 CDouble &operator += (const double value); 00174 00180 CDouble &operator -= (const CDouble &value); 00181 00187 CDouble &operator -= (const double value); 00188 00193 bool operator ! (); 00194 00195 // =========================================================================== 00196 00201 void setValue(const CDouble &value); 00202 00207 void setValue(const double value); 00208 00213 double getValue() const; 00214 00220 CString getValueAsString(const long decimalPlaces = 2) const; 00221 00222 // =========================================================================== 00223 00229 virtual void getObjectDescription(char *string, const long size) const; 00230 00231 // =========================================================================== 00232 00233 protected: 00234 00235 // =========================================================================== 00236 00237 double m_value; 00239 }; 00240 } 00241 } 00242 #endif // End of CDouble.hpp