我们要计算2 ^(3.0)和2 ^( - 3.0)。感谢。
!/bin/bash
c=3.0
g=-3.0
c=$((2**$c)) #syntax error: invalid arithmetic operator (error token is ".0")
g=$((2**$g)) #syntax error: invalid arithmetic operator (error token is ".0")
echo "c=$c"
echo "g=$g"
答案 0 :(得分:6)
Bash的内置算术仅对整数进行操作,并且不允许**
运算符使用负指数。
有许多其他可用的工具可以执行浮点运算。例如:
$ c=3.0
$ g=-3.0
$ awk "BEGIN{print $c ** $c}"
27
$ awk "BEGIN{print $c ** $g}"
0.037037
$ perl -e "print $c ** $c, qq(\n), $c ** $g, qq(\n)"
27
0.037037037037037
将结果存储在变量中:
$ c=$(awk "BEGIN{print $c ** $c}")
$ echo $c
27
答案 1 :(得分:1)
使用perl和awk在线程中已有很好的答案。我们也可以使用python:
python -c "from sys import argv as a; print(pow(int(a[1]), int(a[2])))" 2 6
alias pow='python -c "from sys import argv as a; print(pow(int(a[1]), int(a[2])))"'
pow 2 6
pow 2 -2
答案 2 :(得分:0)
SELECT
id
FROM
records
WHERE
dateofit BETWEEN '2017-12-01' AND '2018-02-28'