Skip to content

Commit 65cee6e

Browse files
committed
1 parent dfc5f87 commit 65cee6e

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/lib_json/json_writer.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,13 @@ std::string valueToString(double value) {
8787
// visual studio 2005 to
8888
// avoid warning.
8989
#if defined(WINCE)
90-
len = _snprintf(buffer, sizeof(buffer), "%.16g", value);
90+
len = _snprintf(buffer, sizeof(buffer), "%.17g", value);
9191
#else
92-
len = sprintf_s(buffer, sizeof(buffer), "%.16g", value);
92+
len = sprintf_s(buffer, sizeof(buffer), "%.17g", value);
9393
#endif
9494
#else
9595
if (isfinite(value)) {
96-
len = snprintf(buffer, sizeof(buffer), "%.16g", value);
96+
len = snprintf(buffer, sizeof(buffer), "%.17g", value);
9797
} else {
9898
// IEEE standard states that NaN values will not compare to themselves
9999
if (value != value) {

src/test_lib_json/main.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -926,7 +926,7 @@ JSONTEST_FIXTURE(ValueTest, integers) {
926926
JSONTEST_ASSERT_EQUAL(float(uint64ToDouble(Json::UInt64(1) << 63)),
927927
val.asFloat());
928928
JSONTEST_ASSERT_EQUAL(true, val.asBool());
929-
JSONTEST_ASSERT_STRING_EQUAL("9.223372036854776e+18",
929+
JSONTEST_ASSERT_STRING_EQUAL("9.2233720368547758e+18",
930930
normalizeFloatingPointStr(val.asString()));
931931

932932
// int64 min
@@ -974,7 +974,7 @@ JSONTEST_FIXTURE(ValueTest, integers) {
974974
JSONTEST_ASSERT_EQUAL(-9223372036854775808.0, val.asDouble());
975975
JSONTEST_ASSERT_EQUAL(-9223372036854775808.0, val.asFloat());
976976
JSONTEST_ASSERT_EQUAL(true, val.asBool());
977-
JSONTEST_ASSERT_STRING_EQUAL("-9.223372036854776e+18",
977+
JSONTEST_ASSERT_STRING_EQUAL("-9.2233720368547758e+18",
978978
normalizeFloatingPointStr(val.asString()));
979979

980980
// 10^19
@@ -1065,7 +1065,7 @@ JSONTEST_FIXTURE(ValueTest, integers) {
10651065
JSONTEST_ASSERT_EQUAL(18446744073709551616.0, val.asDouble());
10661066
JSONTEST_ASSERT_EQUAL(18446744073709551616.0, val.asFloat());
10671067
JSONTEST_ASSERT_EQUAL(true, val.asBool());
1068-
JSONTEST_ASSERT_STRING_EQUAL("1.844674407370955e+19",
1068+
JSONTEST_ASSERT_STRING_EQUAL("1.8446744073709552e+19",
10691069
normalizeFloatingPointStr(val.asString()));
10701070
#endif
10711071
}
@@ -1217,7 +1217,7 @@ JSONTEST_FIXTURE(ValueTest, nonIntegers) {
12171217
normalizeFloatingPointStr(val.asString()));
12181218

12191219
val = Json::Value(1.2345678901234);
1220-
JSONTEST_ASSERT_STRING_EQUAL("1.2345678901234",
1220+
JSONTEST_ASSERT_STRING_EQUAL("1.2345678901234001",
12211221
normalizeFloatingPointStr(val.asString()));
12221222

12231223
// A 16-digit floating point number.

0 commit comments

Comments
 (0)