我需要使用shell脚本将1.22661727081984E + 002转换为122.661727081984。我已经使用以下命令尝试过:
echo "+1.22661727081984E+002" | awk -F"E" 'BEGIN{OFMT="%10.10f"} {print $1 * (10 ^ $2)}'
输出:
122.6617270820
它给了我输出,但是四舍五入到最后四位。
我需要输出而没有四舍五入的结果。
答案 0 :(得分:1)
使用awk
可以按以下方式进行操作:
awk '{ printf("%.100f\n",$1) }'
(假设数字是第一个参数)
示例:
echo "+1.22661727081984E+002"|awk '{ printf("%.100f\n",$1) }'
122.6617270819839973228226881474256515502930000000000000000000000000000000000000000000000000000000000000
(您可以通过更改f
前面的数字来限制位数)
答案 1 :(得分:1)
使用Bash的printf
:
$ printf "%.14f\n" 1.22661727081984E+002
122.66172708198400