在shell脚本中计算浮点数的算术计算



我创建了5个数组,其中只包含浮点数(包含正数和负数(。

以下是声明的数组:

  • 资产
  • 已报告
  • 借方
  • 信贷
  • 附属公司
  • 贷款

我需要对数组执行以下公式,但它不起作用
还有其他方法吗?

for((i =1 ; i <(#$assets[@]}; i++));do
echo ${assets[i]} - ( ${reported[i]} + ( ${affiliate[i]} * -1 ) + ${loans[i]} + (${credit[i]} - ${debit[i]})) | bc >> test.log

第一件事:bash变量不能直接作为浮点值处理。数值bash值只是整数。

您可以使用其他工具来执行浮点计算。即,您可以使用";bc";就像您在代码片段中所做的那样。

你的问题很可能是由bash解释的括号,而不是发送到";bc";。在将计算传递给bc之前,必须先将其构建为字符串。

我会这样写:

echo "${assets[i]} - ( ${reported[i]} + ( ${affiliate[i]} * -1 ) + ${loans[i]} + ( ${credit[i]} - ${debit[i]} ))" | bc

相关内容

  • 没有找到相关文章

最新更新