【问题标题】:JsonCpp - Zero after decimal point is truncatedJsonCpp - 小数点后零被截断
【发布时间】:2015-12-18 11:37:08
【问题描述】:

我最近升级到 JsonCpp 版本 1.6.5。

我注意到小数点后的数字为零的浮点数在打印时会被截断。例如2.0 打印为2

我之前使用的版本 (v0.6.0) 没有这样做。

这是预期的行为吗?

更新

以下代码演示了所描述的问题:

Json::Value object;
object["float1"] = 2.0f;
object["float2"] = 2.1f;

Json::StyledWriter styledWriter;
std::cout << styledWriter.write(object);

使用 Xcode 6.3.2 在 OS X 上运行时的输出是:

{
   "float1" : 2,
   "float2" : 2.0999999046325684
}

【问题讨论】:

  • 你能举一个显示问题的代码示例吗?

标签: c++ jsoncpp


【解决方案1】:

这并不奇怪。 JSON 格式只有一个 NUMBER 数据类型。它不区分整数和浮点数。 (当然接收代码可能只准备在某些字段中接受整数值,但这是一个不同的问题。几乎所有的客户端都可以接受一个不带小数点的数字,而他们期望的是浮点值)。

【讨论】:

  • 但是为什么版本之间的输出不同?
  • 您必须查看差异才能回答这个问题。
  • 找不到任何解释。因此问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
相关资源
最近更新 更多