Add setting precision for json writers and also add decimal places precision type. (#752)
* Added setting precision for writers.
* Added special case for precise precision and global precision.
* Added good setting of type of precision and also added this type to BuiltStreamWriter and for its settings.
* Added some tests.
diff --git a/include/json/value.h b/include/json/value.h
index 2643782..3474cd8 100644
--- a/include/json/value.h
+++ b/include/json/value.h
@@ -109,6 +109,13 @@
numberOfCommentPlacement
};
+/** \brief Type of precision for formatting of real values.
+ */
+enum PrecisionType {
+ significantDigits = 0, ///< we set max number of significant digits in string
+ decimalPlaces ///< we set max number of digits after "." in string
+};
+
//# ifdef JSON_USE_CPPTL
// typedef CppTL::AnyEnumerator<const char *> EnumMemberNames;
// typedef CppTL::AnyEnumerator<const Value &> EnumValues;
@@ -220,6 +227,9 @@
static const UInt64 maxUInt64;
#endif // defined(JSON_HAS_INT64)
+ /// Default precision for real value for string representation.
+ static const UInt defaultRealPrecision;
+
// Workaround for bug in the NVIDIAs CUDA 9.1 nvcc compiler
// when using gcc and clang backend compilers. CZString
// cannot be defined as private. See issue #486