]> git.saurik.com Git - wxWidgets.git/commitdiff
Use C locale representation for floating point numbers in wxAny.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 26 May 2013 13:14:35 +0000 (13:14 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 26 May 2013 13:14:35 +0000 (13:14 +0000)
Always use the decimal point, regardless of the current locale.

This completes the changes of r74019.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
interface/wx/any.h
src/common/any.cpp

index adc9b79eb56c4eb5ca2f2327e21269eff5127886..03eeb53fd3d9ef7812667292d1e0253317fd2ec7 100644 (file)
@@ -236,6 +236,9 @@ Changes in behaviour not resulting in compilation errors, please read this!
   GetEventObject() in all ports but the frame the menu was attached to in wxMSW.
   Now all ports return the menu that was opened or closed as the event object.
 
+- wxAny now uses C locale format for the floating point numbers and not the
+  current locale one, i.e. decimal point is always used.
+
 
 Changes in behaviour which may result in compilation errors
 -----------------------------------------------------------
index de177e1430e2d23bde4d13368972eeb888db94b7..e8b5c6da5f84bb543966a116f4315024a9639dae 100644 (file)
     object in heap for large objects (i.e. ones with size more than
     WX_ANY_VALUE_BUFFER_SIZE, which at the time of writing is 16 bytes).
 
+    @note When performing conversions between strings and floating point
+        numbers, the representation of numbers in C locale is always used.
+        I.e. @code wxAny("1.23").GetAs<double>() @endcode will always work,
+        even if the current locale uses comma as decimal separator.
+
     @library{wxbase}
     @category{data}
 
index 074412c80e844609da892fb454c3e46bbd2d4be5..cefcc2a1d88ff6a4b993002cbdc4954709091a87 100644 (file)
@@ -453,7 +453,7 @@ bool wxAnyValueTypeImplDouble::ConvertValue(const wxAnyValueBuffer& src,
     }
     else if ( wxANY_VALUE_TYPE_CHECK_TYPE(dstType, wxString) )
     {
-        wxString s = wxString::Format(wxS("%.14g"), value);
+        wxString s = wxString::FromCDouble(value, 14);
         wxAnyValueTypeImpl<wxString>::SetValue(s, dst);
     }
     else