我现在得到了正确的输出,但是它并没有扩展到只有 3 个位置。有谁知道该怎么做?
function windchill {
to=32
v=10
vel=`echo 'e(l('$v')*0.16)' | bc -l`
w=$(echo "scale=3; $vel" | bc -l)
twc=`echo "35.74 + (0.6215 * $to) - (35.75 * $w) + (0.4275 * $to * $w)" | bc`
echo ''
echo 'Windchill Calculator'
echo 'Outside Air Temperature (F): '"$to"
echo 'Wind Speed: '"$v"
echo 'Wind-Chill (F): '"$twc"
echo ''
exit
}
我得到了正确的 $tf 和 $v $wc 是我的问题。使用计算器,我得到了正确的答案,只是不在我的 bash 文件中。问题是我的 $w 以 1 而不是 1.4454 的形式返回。
(请注意,此答案是针对最初提出的问题编写的,其中包括计算
v^0.16
)bc
在
bc
中,^
运算符是整数取幂,所以实际上v
是 0 次方,而不是 0.16。x^y
不过,您可以使用对数来计算一般指数:您可以使用代替e(y*l(x))
。所以在这里,而不是v^0.16
, 你会想要e(0.16*l(v))
.请注意,这需要
-l
切换bc
以包含标准数学库。如果您想要特定级别的精度,则需要使用scale
参数 of ,在使用开关bc
时默认为 20 。-l