diff --git a/Source/Core/Common/IniFile.h b/Source/Core/Common/IniFile.h index 6c4cf113ac..a4f35fe23b 100644 --- a/Source/Core/Common/IniFile.h +++ b/Source/Core/Common/IniFile.h @@ -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) diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp index 9fdbd9f801..213dba2b08 100644 --- a/Source/Core/Common/StringUtil.cpp +++ b/Source/Core/Common/StringUtil.cpp @@ -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)