Make String::Number locale-independent

This commit is contained in:
Lynix 2019-12-25 16:26:53 +01:00
parent 0bfe1679c1
commit a69d7a2e89
2 changed files with 8 additions and 4 deletions

View File

@ -15,6 +15,7 @@
#include <cstdio>
#include <cstring>
#include <limits>
#include <locale>
#include <sstream>
#include <Utfcpp/utf8.h>
#include <Nazara/Core/Debug.hpp>
@ -5121,6 +5122,7 @@ namespace Nz
String String::Number(float number)
{
std::ostringstream oss;
oss.imbue(std::locale::classic());
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
oss << number;
@ -5137,6 +5139,7 @@ namespace Nz
String String::Number(double number)
{
std::ostringstream oss;
oss.imbue(std::locale::classic());
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
oss << number;
@ -5153,6 +5156,7 @@ namespace Nz
String String::Number(long double number)
{
std::ostringstream oss;
oss.imbue(std::locale::classic());
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
oss << number;

View File

@ -233,19 +233,19 @@ namespace Nz
break;
case ShaderAst::ExpressionType::Float1:
Append(String::Format("%F", node.values.vec1));
Append(String::Number(node.values.vec1));
break;
case ShaderAst::ExpressionType::Float2:
Append(String::Format("vec2(%F, %F)", node.values.vec2.x, node.values.vec2.y));
Append("vec2(" + String::Number(node.values.vec2.x) + ", " + String::Number(node.values.vec2.y) + ")");
break;
case ShaderAst::ExpressionType::Float3:
Append(String::Format("vec3(%F, %F, %F)", node.values.vec3.x, node.values.vec3.y, node.values.vec3.z));
Append("vec3(" + String::Number(node.values.vec3.x) + ", " + String::Number(node.values.vec3.y) + ", " + String::Number(node.values.vec3.z) + ")");
break;
case ShaderAst::ExpressionType::Float4:
Append(String::Format("vec4(%F, %F, %F, %F)", node.values.vec4.x, node.values.vec4.y, node.values.vec4.z, node.values.vec4.w));
Append("vec4(" + String::Number(node.values.vec4.x) + ", " + String::Number(node.values.vec4.y) + ", " + String::Number(node.values.vec4.z) + ", " + String::Number(node.values.vec4.z) + ")");
break;
default: