在shell脚本中,我希望23.343输出为2.334E + 1。使用printf "%.3E\n" 23.343
时,我得到2.334E + 01。那么如何通过printf中的一些技巧删除那个0?还有一种方法可以通过printf输出上述数字为0.233E + 02
答案 0 :(得分:1)
使用printf本身,您不会:
e,E 双参数被舍入并以样式[ - ] d.ddde±dd转换,其中小数点字符前有一位数字 ...指数始终包含至少两位数;如果值为零,则指数为00。
但是在例如Bash,你可以手动从指数中删除零:
$ x=$(printf "%.3E\n" 23.343)
$ $ echo "${x/E+0/E+}"
2.334E+1
(我错过了问题的其他部分。)