我想在脚本中执行以下操作:

1 - ((m - 20) / 34)

我想将此操作的结果分配给另一个变量。我希望我的脚本使用浮点数学。例如,对于m = 34:
results = 1 - ((34 - 20) / 34) == 0.588

最佳答案

您可以使用bc计算器。如果您将scale的默认值设置为0,它将使用小数(不是二进制浮点数)进行任意精度的数学运算:

$ m=34
$ bc <<< "scale = 10; 1 - (($m - 20) / 34)"
.5882352942
-l选项将加载标准数学库,默认比例为20:
$ bc -l <<< "1 - (($m - 20) / 34)"
.58823529411764705883

然后,您可以使用printf格式化输出,如果您选择这样的话:
printf "%.3f\n" "$(bc -l ...)"

关于bash - 脚本和浮点数除法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12147040/

10-13 09:47