Make String::Number locale-independent
This commit is contained in:
parent
0bfe1679c1
commit
a69d7a2e89
|
|
@ -15,6 +15,7 @@
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
#include <locale>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <Utfcpp/utf8.h>
|
#include <Utfcpp/utf8.h>
|
||||||
#include <Nazara/Core/Debug.hpp>
|
#include <Nazara/Core/Debug.hpp>
|
||||||
|
|
@ -5121,6 +5122,7 @@ namespace Nz
|
||||||
String String::Number(float number)
|
String String::Number(float number)
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
oss.imbue(std::locale::classic());
|
||||||
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
|
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
|
||||||
oss << number;
|
oss << number;
|
||||||
|
|
||||||
|
|
@ -5137,6 +5139,7 @@ namespace Nz
|
||||||
String String::Number(double number)
|
String String::Number(double number)
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
oss.imbue(std::locale::classic());
|
||||||
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
|
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
|
||||||
oss << number;
|
oss << number;
|
||||||
|
|
||||||
|
|
@ -5153,6 +5156,7 @@ namespace Nz
|
||||||
String String::Number(long double number)
|
String String::Number(long double number)
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
oss.imbue(std::locale::classic());
|
||||||
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
|
oss.precision(NAZARA_CORE_DECIMAL_DIGITS);
|
||||||
oss << number;
|
oss << number;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -233,19 +233,19 @@ namespace Nz
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ShaderAst::ExpressionType::Float1:
|
case ShaderAst::ExpressionType::Float1:
|
||||||
Append(String::Format("%F", node.values.vec1));
|
Append(String::Number(node.values.vec1));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ShaderAst::ExpressionType::Float2:
|
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;
|
break;
|
||||||
|
|
||||||
case ShaderAst::ExpressionType::Float3:
|
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;
|
break;
|
||||||
|
|
||||||
case ShaderAst::ExpressionType::Float4:
|
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;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue