我正在使用 shell 脚本并使用以下表达式:
A=`echo "(( (($a / $b) ^ 0.3) -1 ))" |bc -l`
Run Code Online (Sandbox Code Playgroud)
我想要一个实数作为指数。我注意到如果我放置 0.3,它会四舍五入为一个整数并取零的幂。同样,如果我在上面的表达式中使用 5.5 或 5.9 代替 0.3,我会得到相同的答案。
如何计算指数为实数而不是整数的数的幂
您不能直接使用^
运算符提升到非整数指数,但是,您可以使用身份
a b = e ln(a) × b
与e
作为自然对数的底。bc
,当使用-l
选项调用时,具有函数e
和l
分别计算e
底幂和自然对数,所以为了计算a^b
你只需写e(l(a)*b)
。
例如,对于 2 0.5(2 的平方根):
$ echo 'e(l(2)*0.5)' | bc -l
1.41421356237309504878
Run Code Online (Sandbox Code Playgroud)
小智 5
为什么不能用 awk 或 perl one-liner 来处理呢?
echo "$a $b" | awk '{ print ((($1/$2)^0.3) -1); }'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13116 次 |
最近记录: |