bash命令行算术echo$((x-y))如何将结果除以z?

bash命令行算术echo$((x-y))如何将结果除以z?,bash,math,Bash,Math,我想找出一种方法,把一个基本方程的结果除以另一个整数。所以在简单的形式下,它看起来像; A-B=C,然后将C除以D 我知道方程的第一部分是echo$((A-B)),但是我如何得到这个结果除以D 任何反馈都将不胜感激 您可以在$(()) 如果要计算(A-B)/C,可以将其放入$(())中: echo $(( (A-B)/C )) 请注意,结果将被截断为零,因为bash不支持小数 请记住确保表达式前面有$(),后面有),并且里面的所有括号都匹配。您可以在$(()) 如果要计算(A-B)/C,可以将

我想找出一种方法,把一个基本方程的结果除以另一个整数。所以在简单的形式下,它看起来像; A-B=C,然后将C除以D

我知道方程的第一部分是echo$((A-B)),但是我如何得到这个结果除以D


任何反馈都将不胜感激

您可以在
$(())

如果要计算
(A-B)/C
,可以将其放入
$(())
中:

echo $(( (A-B)/C ))
请注意,结果将被截断为零,因为bash不支持小数


请记住确保表达式前面有
$(
),后面有
),并且里面的所有括号都匹配。

您可以在
$(())

如果要计算
(A-B)/C
,可以将其放入
$(())
中:

echo $(( (A-B)/C ))
请注意,结果将被截断为零,因为bash不支持小数

记住要确保表达式前面有
$(
,后面有
,并且里面的所有括号都匹配。

使用shell 此操作(取自注释)失败,因为括号不平衡:

$ echo $((2147483633-807279114))/5184000))
请尝试:

$ echo $(( (2147483633-807279114)/5184000 ))
258
上面返回一个整数,因为shell只执行整数运算

使用
bc
如果需要精确的浮点数,则使用的标准工具是
bc

echo $(( (A-B)/C ))
$ echo '(2147483633-807279114)/5184000' | bc -l
258.52710628858024691358
使用
python
Python支持整数和浮点运算:

$ python -c 'print (2147483633-807279114)//5184000'
258
$ python -c 'print (2147483633-807279114)/5184000.0'
258.527106289
Python及其numpy扩展是一个极好的工具,即使您的需要扩展到复杂的科学计算

使用
awk
标准unix工具awk支持浮点数学:

$ awk 'BEGIN{print (2147483633-807279114)/5184000;quit}'
258.527
使用外壳 此操作(取自注释)失败,因为括号不平衡:

$ echo $((2147483633-807279114))/5184000))
请尝试:

$ echo $(( (2147483633-807279114)/5184000 ))
258
上面返回一个整数,因为shell只执行整数运算

使用
bc
如果需要精确的浮点数,则使用的标准工具是
bc

echo $(( (A-B)/C ))
$ echo '(2147483633-807279114)/5184000' | bc -l
258.52710628858024691358
使用
python
Python支持整数和浮点运算:

$ python -c 'print (2147483633-807279114)//5184000'
258
$ python -c 'print (2147483633-807279114)/5184000.0'
258.527106289
Python及其numpy扩展是一个极好的工具,即使您的需要扩展到复杂的科学计算

使用
awk
标准unix工具awk支持浮点数学:

$ awk 'BEGIN{print (2147483633-807279114)/5184000;quit}'
258.527

dc
dc你试过什么了吗?我试过“echo$((2147483633-807279114))/5184000)),但出现了错误。第一次在Linux中尝试高级算术你尝试过什么吗?我尝试过“echo$((2147483633-807279114))/5184000)),但出现了错误。第一次在Linux中尝试高级算法“$echo$((2147483633-807279114)/5184000))258”正是我所需要的。非常感谢您的回复!“$echo$((2147483633-807279114)/5184000))258”正是我所需要的。非常感谢您的回复!