我有input_file
:
{"hi":48.0, "yep":48.123}
我跑这个
jq . < input_file > output_file
cat output_file
我的输出:
{
"yep": 48.123,
"hi": 48
}
我希望输出为
{
"yep": 48.123,
"hi": 48.0
}
如何防止jq自动将我的double值转换为int?
答案 0 :(得分:2)
jq将数字解析为C双打。然后它将它们格式化为数字。这种转换在两个方面是有损的:a)有许多方法可以表示相同的数字,但是jq只使用一个而没有其他选项,b)C双精度具有有限的精度。
对于这两个问题,jq都存在问题。可能的解决方案是采用bignum / bigfloat方法,并保持未经修改的数字的原始数字字符串(因为它是; jq将所有数据视为写时复制)。但这还没有实现。