在 bash 上添加两个双打

在 bash 上添加两个双打

我正在尝试添加两个双打

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)

相关内容