【发布时间】:2020-12-04 11:26:44
【问题描述】:
使用 Bash 5.0.17(1)-release
表演:
LC_NUMERIC=C printf '%a\n' 0.0
输出:
0x0p+0
测试多个值:
for v in 1.0 2.0 42.0 3.141592653589793
do LC_NUMERIC=C printf '%-20s %a\n' "$v" "$v"
done
输出是:
1.0 0x8p-3
2.0 0x8p-2
42.0 0xa.8p+2
3.141592653589793 0xc.90fdaa22168bde9p-2
这是什么%a 格式说明符,我无法通过man bash 或help printf 或搜索网络找到文档?
【问题讨论】:
-
我可以在
man printf.3中找到这种格式的文档,它显示了printf的c 语言文档。C99; not in SUSv2, but added in SUSv3) For a conversion, the double argument is converted to hexadecimal notation...
标签: bash printf undocumented-behavior