JQ 将数字四舍五入到小数点后两位

问题描述 投票:0回答:1

我使用 jq 1.6,并尝试将数字四舍五入到小数点后两位。我该怎么办?

我的代码:

echo 20.152 | jq -c 'round'

我的输出:

20

预期输出:

20.15
json parsing jq
1个回答
14
投票

您可以乘以 10 的幂,舍入,然后除以 10 的幂。使用

100
表示两位小数。忽略浮点误差,这应该会给出您期望的数字。

jq '.*100|round/100'

如果经常需要,可以定义一个函数并使用它:

def round(precision):.*pow(10;precision)|round/pow(10;precision);

将定义放入

~/.jq
文件中可以让您自动在所有 jq 程序中使用它。

© www.soinside.com 2019 - 2024. All rights reserved.