bash内置的printf的%a格式说明符是什么?

问题描述

使用Bash 5.0.17(1)-发行版

效果

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 bashhelp printf记录的文件,或者找不到网络?

解决方法

这个%a格式说明符是什么,我找不到用man bashhelp printf记录的文件,还是找不到网络?

它提供的功能与C标准库的printf()函数所使用的格式说明符相同。具体来说,它将打印浮点数的十六进制表示形式。