JsonCpp-小数点后的零被截断
JsonCpp - Zero after decimal point is truncated
我最近升级到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
}
这并不奇怪。JSON格式只有NUMBER数据类型。它不区分整型和浮点型。(当然,接收代码可能只准备接受某些字段中的整数值,但这是另一个问题。几乎所有客户端在期望浮点值时都可以接受没有小数点的数字)。
相关文章:
- 用c++把小数点转换成八进制
- 使用jsoncpp库时出现链接问题
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- 使用 jsoncpp 解析 json 数组字符串
- 如何在 c++ 中将小数点后两位数的浮点数分配给另一个浮点数
- 使用 cin 时接受小数点后的 2 位数字
- 如何将 jsoncpp 库包含在 unix 上的项目中?
- 使用 stod() 转换小数点后字母的字符串时没有例外
- 如何在C++中只打印小数点而不设置限制,但动态设置精度
- JsonCpp在退出函数时抛出LogicError
- 使用jsoncpp-NuGet包时获取未解析的外部符号
- JSONCPP 只用一个元素写入 JSON 数组
- 使用 jsoncpp 读取 JSON 文件
- 为什么在C++算术函数中加".0"会给出小数点的答案?
- 使用 JSONCPP 将 JSON 数据增量写入文件
- 使用 jsoncpp 时从 JSon 剥离私有数据的最佳方法
- 如何创建和填充 jsoncpp 数组 (jsoncpp.sourceforge)
- C++ cout 列表,其中小数点使用 setw(x) 对齐,而不是put_money
- C++小数点后有 200 位数字的类型?
- JsonCpp-小数点后的零被截断