我正在尝试添加两个双打
y1=0.17580197E-01
y2=0.11979236E-02
sum=`echo $y1+$y2 | bc -l`
上面的脚本给了我 sum = -2.704405652。我该如何解决这个问题?
答案1
您可以使用 awk 使用以下命令来完成此操作:
sum=`echo|awk -v y1=$y1 -v y2=$y2 '{print y1+y2}'`
正如评论中所建议的, awk 可以用这种方式重写(以避免回显)
sum=`awk -v y1=$y1 -v y2=$y2 'BEGIN {print y1+y2}'`
答案2
尝试这个,
echo "$y1 $y2" | awk '{print $1+$2}'
0.0187781
只需打印以空格分隔的两个值并使用 awk 添加前两个字段
答案3
要与 bc 相加,数字不应包含科学指数。换句话说,数字应该是 float ( %f
) 格式。这可以通过以下方式完成:
y1=0.17580197E-01
y2=0.11979236E-02
sum=$(printf '%.20f+%.20f\n' "$y1" "$y2" | bc -l)