Merge pull request #2733 from AdmiralCurtiss/string-from-float

IniFile: Fix floating point number locale issues.
This commit is contained in:
Markus Wick 2015-12-02 15:22:42 +01:00
commit 3ed29cce0c
2 changed files with 4 additions and 4 deletions

View File

@ -46,12 +46,12 @@ public:
void Set(const std::string& key, float newValue)
{
Set(key, StringFromFormat("%f", newValue));
Set(key, StringFromFormat("%#.9g", newValue));
}
void Set(const std::string& key, double newValue)
{
Set(key, StringFromFormat("%f", newValue));
Set(key, StringFromFormat("%#.17g", newValue));
}
void Set(const std::string& key, int newValue)

View File

@ -82,10 +82,10 @@ bool CharArrayFromFormatV(char* out, int outsize, const char* format, va_list ar
// multibyte handling is required as we can simply assume that no '%' char
// will be present in the middle of a multibyte sequence.
//
// This is why we lookup an ANSI (cp1252) locale here and use _vsnprintf_l.
// This is why we look up the default C locale here and use _vsnprintf_l.
static _locale_t c_locale = nullptr;
if (!c_locale)
c_locale = _create_locale(LC_ALL, ".1252");
c_locale = _create_locale(LC_ALL, "C");
writtenCount = _vsnprintf_l(out, outsize, format, c_locale, args);
#else
#if !defined(ANDROID)