首页 > 解决方案 > Bash,需要对变量进行计数,舍入到2并存储到变量

问题描述

我需要计算变量,舍入到 2 并存储到变量。

例子:

我有来自数组 ${array[5]} 的变量和定义的增值税变量,我需要计算简单

( $vat * ${array[5]} + ${array[5]} )

并存储到可变价格增值税。

我试过:

vat = 0.21

pricevat=$(echo "$vat * ${array[5]}" + ${array[5]} | bc -l)
(( pricevat=$vat*${array[5]}+${array[5]}))

但没有任何效果:

line 48: ((: pricevat=0.21*0.233+0.233: syntax error: invalid arithmetic operator (error token is ".21*0.233+0.233"

请问你能帮帮我吗?哪里有问题?什么是最好的解决方案。非常感谢你。

S。

标签: bashvariablesinteger

解决方案


有可能(虽然,它不会四舍五入,而是截断到小数点后 3 位):

array=( ... ... ... ... ... 102.03 ... )
vat=0.21
pricevat=$(bc <<< "scale=3; (1+$vat)*${array[5]}")

诀窍是进行bc舍入,使用它的特殊变量scale,设置为3


推荐阅读