@@ -74,15 +74,18 @@ std::string valueToString(double value) {
74
74
#if defined(_MSC_VER) && defined(__STDC_SECURE_LIB__) // Use secure version with
75
75
// visual studio 2005 to
76
76
// avoid warning.
77
+ size_t len;
77
78
#if defined(WINCE)
78
- _snprintf (buffer, sizeof (buffer), " %.16g" , value);
79
+ len = _snprintf (buffer, sizeof (buffer), " %.16g" , value);
79
80
#else
80
- sprintf_s (buffer, sizeof (buffer), " %.16g" , value);
81
+ len = sprintf_s (buffer, sizeof (buffer), " %.16g" , value);
81
82
#endif
83
+ fixNumericLocale (buffer, buffer + len);
82
84
#else
83
85
if ( isfinite ( value ))
84
- {
85
- snprintf (buffer, sizeof (buffer), " %.16g" , value);
86
+ {
87
+ size_t len = snprintf (buffer, sizeof (buffer), " %.16g" , value);
88
+ fixNumericLocale (buffer, buffer + len);
86
89
}
87
90
else
88
91
{
@@ -99,12 +102,8 @@ std::string valueToString(double value) {
99
102
{
100
103
snprintf (buffer, sizeof (buffer), " 1e+9999" );
101
104
}
102
- // nothing more to do, return.
103
- return buffer;
104
105
}
105
-
106
106
#endif
107
- fixNumericLocale (buffer, buffer + strlen (buffer));
108
107
return buffer;
109
108
}
110
109
0 commit comments