You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对JSON文档任意位置的数字进行两位精度四舍五入?

通用JSON数字四舍五入到两位小数的解决方案

直接用jq工具处理是最优方案——它能精准识别JSON结构里的数值类型,不会误处理字符串中的数字,还能正确处理科学计数法、负数等场景,完美实现四舍五入需求。

核心命令

jq 'walk(if type == "number" then (. * 100 | round) / 100 else . end)' input.json > output.json

命令解释

  • walk(...):递归遍历JSON的所有节点,对每个节点做判断处理
  • if type == "number":只针对数值类型的节点操作,避开键名、字符串等非数值内容
  • (. * 100 | round) / 100:先把数字放大100倍,用round做四舍五入,再缩小100倍,得到两位小数的结果
  • 非数值节点直接原样保留

测试验证

拿你提供的输入示例测试:
输入:

{
  "a": -4e-12,
  "b": {
    "c": 0.999999999999997,
    "d": 101.12222222222
  }
}

执行命令后输出:

{
  "a": 0,
  "b": {
    "c": 1,
    "d": 101.12
  }
}

完全符合预期,且能处理任意层级的嵌套结构,不管数值在JSON的哪个位置都能正确处理。

注意事项

  • 确保系统已安装jq工具,大部分Linux发行版可用包管理器安装(比如apt install jq或yum install jq),macOS可通过Homebrew安装(brew install jq)
  • 该方法不会修改JSON结构,仅处理数值内容,避免了正则处理可能出现的误匹配问题(比如改掉字符串里的数字)

内容的提问来源于stack exchange,提问作者Rainer Jung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:47:33