0

我有一个浮点数的bash数组,说它是这样调用vals和初始化的——

# load data from the datafile.txt

vals=`cat datafile.txt` 
vals=($vals)

datafile.txt外观是这样的——

0.012256791324227446
0.012424287090558156
0.013912725724889032
0.014678182257134693

现在我需要在vals使用 bc 时计算元素 1 和 2 的平均值,我正在执行以下操作 -

result=$(echo "(${vals[1]} + ${vals[2]})/2.0" | bc)
echo result: $result

result始终是0,请注意元素不是0.0

任何想法?

编辑:数据已更改。

4

2 回答 2

1

用于scale定义小数点后的位数:

$ echo "scale=5; (${vals[1]} + ${vals[2]})/2.0" | bc
.49580

$ echo "scale=3; (${vals[1]} + ${vals[2]})/2.0" | bc
.495

来自man bc

规模(表达)

scale函数的值是表达式中小数点后的位数。


另外,请注意这足够了:

vals=$(cat datafile.txt)
于 2014-04-11T11:16:20.763 回答
1

bc -l如果我需要浮点数,我通常会打电话。

于 2014-04-11T11:17:08.357 回答