如何使用jackson-jq 0.x将数字转换为两位精度格式?
解决jackson-jq 0.x版本数字转为两位精度格式的问题
jackson-jq 0.x版本没有直接提供格式化到两位小数的内置函数,但可以通过组合现有函数实现你的需求。以下是两种可行方案:
方案1:使用@printf格式化(优先尝试)
如果你的版本支持@printf函数,可以直接用格式化字符串实现:
your_number | tonumber | @printf "%.2f"
这个表达式会自动将数字格式化为两位小数,比如:
- 1 → "1.00"
- 1.0 → "1.00"
- 1.1 → "1.10"
- 1.00 → "1.00"
方案2:手动字符串补全(兼容所有0.x版本)
如果@printf不可用,可通过数字运算+字符串处理的组合方式实现:
your_number | tonumber | (. * 100 | round) / 100 | tostring | if index(".") then (split(".") | .[1] += "00" | .[1][:2] | join(".")) else . + ".00" end
步骤说明:
tonumber:确保输入是数字类型(处理字符串形式的数字)(. * 100 | round) / 100:将数字四舍五入到两位小数(若不需要四舍五入,可替换round为floor或ceil)tostring:转换为字符串格式- 字符串分支处理:
- 若包含小数点,将小数部分补两个0后截取前两位,再拼接整数部分
- 若不包含小数点,直接追加
.00
内容的提问来源于stack exchange,提问作者Shivam Chetani
相关产品推荐
相关产品推荐

