]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxULongLong::ToDouble() (patch 1531597)
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 13 Aug 2006 00:44:44 +0000 (00:44 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 13 Aug 2006 00:44:44 +0000 (00:44 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/longlong.h
src/common/longlong.cpp

index 59dcd57c7441a249166e71728e4d7461a742cd4f..9b6553ea9a22eaaf282fb0b8b1921bc33400dd2d 100644 (file)
@@ -410,6 +410,9 @@ public:
         return wx_truncate_cast(unsigned long, m_ll);
     }
 
+        // convert to double
+    double ToDouble() const { return wx_truncate_cast(double, m_ll); }
+
     // operations
         // addition
     wxULongLongNative operator+(const wxULongLongNative& ll) const
@@ -906,6 +909,9 @@ public:
         return (unsigned long)m_lo;
     }
 
+        // convert to double
+    double ToDouble() const;
+
     // operations
         // addition
     wxULongLongWx operator+(const wxULongLongWx& ll) const;
index 360d087b3e351610f4aab3fa66157b225dae0b9f..772ecc0b9a600e57d6919b1eaf3bc7aae6c68ff3 100644 (file)
@@ -194,6 +194,19 @@ double wxLongLongWx::ToDouble() const
     return d;
 }
 
+double wxULongLongWx::ToDouble() const
+{
+    unsigned double d = m_hi;
+    d *= 1.0 + (double)ULONG_MAX;
+    d += m_lo;
+
+#ifdef wxLONGLONG_TEST_MODE
+    wxASSERT( d == m_ll );
+#endif // wxLONGLONG_TEST_MODE
+
+    return d;
+}
+
 wxLongLongWx wxLongLongWx::operator<<(int shift) const
 {
     wxLongLongWx ll(*this);