如何使用 jq 提取数字格式的浮点值而不是指数值?

Posted

技术标签:

【中文标题】如何使用 jq 提取数字格式的浮点值而不是指数值?【英文标题】:How to extract float values in number format instead of exponential values using jq? 【发布时间】:2020-01-02 06:02:14 【问题描述】:

我使用 jq 从文件中的 json 列表中提取了几个字段,其中一个字段包含一个浮点值(例如,float 0.0000875),当通过 jq 提取时更改为“8.75e-05”。有没有一种方法可以提取这些值而不转换为指数形式?

【问题讨论】:

见 - jq reformatting decimals in scientific notation — can this be avoided? 【参考方案1】:

jq 的“主”版本现在通常保留“外部”数字格式,例如

$ jq -n '0.0000875'
0.0000875

relevant commit 日期是 2019 年 10 月 21 日。

有关一些安装指南,请参阅https://github.com/stedolan/jq/wiki/Installation

【讨论】:

尝试对 jq 1.6 做同样的事情。无论值是“0.0000875”,它都会被提取为“8.75e-05”,但如果小数点后的非零数字位于第 4 位,则我能够按原样获取值(例如 0.0009125)。你能说一下版本吗? @峰 修复版本尚未正式发布。您要么必须从“master”构建,要么根据已经提到的安装页面安装足够更新的二进制文件。

以上是关于如何使用 jq 提取数字格式的浮点值而不是指数值?的主要内容,如果未能解决你的问题,请参考以下文章

在Excel中,要用公式提取该数值小数点后面的数字

Python dash gauge - 我如何使用字符串作为值而不是数字?

如何格式化浮点值,使其从不使用指数表示法,也没有尾随零?

浮点型是啥意思

具有格式化值而不是实际值的 EXCEL 公式

转换为 IEEE 754 单精度浮点格式帮助