Skip to content

Commit b372611

Browse files
author
张峰
committed
fix(json_render): json_render is not accurate enough for extremely small numbers. eg: fmt::format_to(std::back_inserter(buffer), FMT_COMPILE({}), double(0.0000000000017114087924596788)); you will get a result of 1.7114087924, this is a completely wrong result.
1 parent 376282d commit b372611

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

include/util/json_renderer.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ template <typename Out> struct Renderer
5656
size_t decimalpos = std::find(buffer.begin(), buffer.end(), '.') - buffer.begin();
5757
if (buffer.size() > (decimalpos + 10))
5858
{
59-
buffer.resize(decimalpos + 10);
59+
buffer.clear();
60+
fmt::format_to(std::back_inserter(buffer), FMT_COMPILE("{0:.10f}"), number.value);
61+
62+
// buffer.resize(decimalpos + 10);
6063
}
6164

6265
write(buffer.data(), buffer.size());

0 commit comments

Comments
 (0)