我发现JavaScipt和通过jqbash(和其他编程语言)创建的json- data之间存在差异。使用JavaScript,即使使用,我也可以创建最多六位的十进制数字float()。但是与jq它不同,因为添加十进制值只需要在小数点后四位数字。
jq
float()
我的问题是我需要十进制数字存储在SQL中,该点后最多六位数字。
例:
$ JSON='{"decimal":0.00001}' $ echo "$JSON" | jq . { "decimal": 1e-05 }
我的目标是用此行验证小数点…
if [[ "$TMP_DECIMAL" =~ ^[0-9]+([.][0-9]+)?$ ]] ; then
有什么建议/建议吗?
您无法更改其jq行为-目前,相关功能请求仍处于打开状态-但您 可以 在检索到数字后重新格式化它们。例如:
json='{"decimal":0.00001}' decimal=$(jq '.decimal' <<<"$json") decimal_f=$(awk -v decimal="$decimal" 'BEGIN { printf("%f\n", decimal) }' </dev/null) echo "JQ emitted $decimal; reformatted as $decimal_f"