mirror of
https://github.com/Tencent/rapidjson.git
synced 2025-03-09 03:03:38 +01:00
Fix a bug in dtoa
This previously affects Writer:: SetMaxDecimalPlaces()
This commit is contained in:
parent
824120b8d8
commit
7886965e34
@ -180,7 +180,7 @@ inline char* Prettify(char* buffer, int length, int k, int maxDecimalPlaces) {
|
||||
buffer[1] = '.';
|
||||
for (int i = 2; i < offset; i++)
|
||||
buffer[i] = '0';
|
||||
if (length + offset > maxDecimalPlaces) {
|
||||
if (length - kk > maxDecimalPlaces) {
|
||||
// When maxDecimalPlaces = 2, 0.123 -> 0.12, 0.102 -> 0.1
|
||||
// Remove extra trailing zeros (at least one) after truncation.
|
||||
for (int i = maxDecimalPlaces + 1; i > 2; i--)
|
||||
|
@ -81,6 +81,12 @@ TEST(dtoa, maxDecimalPlaces) {
|
||||
TEST_DTOA(3, 2.225073858507201e-308, "0.0"); // Max subnormal positive double
|
||||
TEST_DTOA(3, 2.2250738585072014e-308, "0.0"); // Min normal positive double
|
||||
TEST_DTOA(3, 1.7976931348623157e308, "1.7976931348623157e308"); // Max double
|
||||
TEST_DTOA(5, -0.14000000000000001, "-0.14");
|
||||
TEST_DTOA(4, -0.14000000000000001, "-0.14");
|
||||
TEST_DTOA(3, -0.14000000000000001, "-0.14");
|
||||
TEST_DTOA(3, -0.10000000000000001, "-0.1");
|
||||
TEST_DTOA(2, -0.10000000000000001, "-0.1");
|
||||
TEST_DTOA(1, -0.10000000000000001, "-0.1");
|
||||
|
||||
#undef TEST_DTOA
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user