|
@@ -73,18 +73,18 @@ void JSON::_stringify(String &r_result, const Variant &p_var, const String &p_in
|
|
|
r_result += itos(p_var);
|
|
|
return;
|
|
|
case Variant::FLOAT: {
|
|
|
- double num = p_var;
|
|
|
+ const double num = p_var;
|
|
|
|
|
|
// Only for exactly 0. If we have approximately 0 let the user decide how much
|
|
|
// precision they want.
|
|
|
- if (num == double(0)) {
|
|
|
+ if (num == double(0.0)) {
|
|
|
r_result += "0.0";
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- double magnitude = std::log10(Math::abs(num));
|
|
|
- int total_digits = p_full_precision ? 17 : 14;
|
|
|
- int precision = MAX(1, total_digits - (int)Math::floor(magnitude));
|
|
|
+ const double magnitude = std::log10(Math::abs(num));
|
|
|
+ const int total_digits = p_full_precision ? 17 : 14;
|
|
|
+ const int precision = MAX(1, total_digits - (int)Math::floor(magnitude));
|
|
|
|
|
|
r_result += String::num(num, precision);
|
|
|
return;
|
|
@@ -120,7 +120,7 @@ void JSON::_stringify(String &r_result, const Variant &p_var, const String &p_in
|
|
|
r_result += end_statement;
|
|
|
}
|
|
|
_add_indent(r_result, p_indent, p_cur_indent + 1);
|
|
|
- _stringify(r_result, var, p_indent, p_cur_indent + 1, p_sort_keys, p_markers);
|
|
|
+ _stringify(r_result, var, p_indent, p_cur_indent + 1, p_sort_keys, p_markers, p_full_precision);
|
|
|
}
|
|
|
r_result += end_statement;
|
|
|
_add_indent(r_result, p_indent, p_cur_indent);
|
|
@@ -154,9 +154,9 @@ void JSON::_stringify(String &r_result, const Variant &p_var, const String &p_in
|
|
|
r_result += end_statement;
|
|
|
}
|
|
|
_add_indent(r_result, p_indent, p_cur_indent + 1);
|
|
|
- _stringify(r_result, String(key), p_indent, p_cur_indent + 1, p_sort_keys, p_markers);
|
|
|
+ _stringify(r_result, String(key), p_indent, p_cur_indent + 1, p_sort_keys, p_markers, p_full_precision);
|
|
|
r_result += colon;
|
|
|
- _stringify(r_result, d[key], p_indent, p_cur_indent + 1, p_sort_keys, p_markers);
|
|
|
+ _stringify(r_result, d[key], p_indent, p_cur_indent + 1, p_sort_keys, p_markers, p_full_precision);
|
|
|
}
|
|
|
|
|
|
r_result += end_statement;
|