浮点值丢失 :: 使用 rapidjson 读取 JSON

Loss of floating point values :: reading JSON with rapidjson

在项目中,程序读取 JSON 文档(使用快速 json)然后获取该 JSON 文档的一部分并尝试创建新的 JSON价值。以下代码用于

# jsonstring is the JSON string
rapidjson::Document firstJSON = readJsonString(jsonstring);
# val is the Value which is a small part of firstJSON document
rapidjson::Value &val = firstJSON["A"]["B"];

jsonstring是一个follows

{
    "A":
    {
       "B":
       {
           "e0":0.03974359855055809,
           "e1":0.17799679934978486
       }
    }
    "R": "stringval"
}

所以 Val 的值应该是

"B":
{
  "e0":0.03974359855055809,
  "e1":0.17799679934978486
}

但它给了我这个输出:Val

"B":
{
  "e0":0.0,
  "e1":0.1
}

很明显,当尝试从文档中读取 json 的一部分并在 rapidjson::Value 中读取它时,它只是采用单个十进制值。

任何人都可以告诉我如何从 rapidjson::Document 读取并使 rapidjson::Value 具有双精度值吗?

已经试过了

  1. 试图设置精度,但我没有找到为 reading from rapidjson::Document to rapidjson::Value
  2. 设置精度的方法

非常感谢!!

将 OP 的评论转换为答案:

The precision was set at 1, that's the reason you are getting this output. So set the precision to 18 and this issue should be solved.