首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQ: Bigint数字精度

JQ: Bigint数字精度
EN

Stack Overflow用户
提问于 2019-04-15 20:16:44
回答 1查看 308关注 0票数 0

实际上,我遇到了BIGINT问题,以及JQ1.5/1.6(在Windows环境中)的模糊问题。我阅读了问题报告,并认为如果我将数字转换为字符串,我可以处理它。但是我用一个特定的命令测试它,结果是一样的

代码语言:javascript
复制
[. | { last_update: .starbase_detailed_scan.last_update_time, user_name: .starbase_detailed_scan.owner_name, alliance_id: .starbase_detailed_scan.owner_alliance_id | tostring, drydocks: .starbase_detailed_scan.num_drydocks, tier: .starbase_detailed_scan.owner_level, defence_plattform: .starbase_detailed_scan.num_defence_platforms, shield_triggered: .starbase_detailed_scan.player_shield.triggered_on, shield_end: .starbase_detailed_scan.player_shield.expiry_time, parsteel: .starbase_detailed_scan.resources["2325683920"], tritanium: .starbase_detailed_scan.resources["743985951"], dilithium: .starbase_detailed_scan.resources["2614028847"], user_id: .starbase_detailed_scan.owner_user_id, defence_rating: .starbase_detailed_scan.defense_rating }]

结果:

代码语言:javascript
复制
[{"last_update":"2018-12-23T19:26:24","user_name":"Hamita40","alliance_id":"774615702811599900","drydocks":3,"tier":19,"defence_plattform":3,"shield_triggered":"0001-01-01T00:00:00","shield_end":"0001-01-01T00:00:00","parsteel":183649,"tritanium":22459,"dilithium":7074,"user_id":"a2588903decc455283c88508f6a7fedf","defence_rating":25200}]

Alliance_id不正确。正确的id是:

代码语言:javascript
复制
774615702811599864

有什么变通方法吗?

BR Timo

EN

回答 1

Stack Overflow用户

发布于 2019-04-15 23:36:10

使用tostring无济于事,因为tostring只能在jq解析器读取输入的之后看到数字

jq维护者很清楚这个问题,确实有一个“拉请求”可以解决这个问题:https://github.com/stedolan/jq/pull/1752

如果您希望使用jq的正式发布版本,那么唯一可用的“变通办法”将是将JSON源代码中的数字更改为字符串。您可能希望使用"bigint“库来处理"bigint”字符串- https://github.com/joelpurra/jq-bigint

更新

从2019年10月22日起,jq在"master“的版本保留了读取的数字的精度,tostring可以在这样的数字上使用而不会损失精度,例如

代码语言:javascript
复制
$ jq tostring
123456789123456789123456789123456789123456789123456789
"123456789123456789123456789123456789123456789123456789"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55689032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档