将变量除以数字?

将变量除以数字?

基本上我需要将厘米转换为英寸,我试图通过将厘米面积除以 2.54 来实现。

但我就是无法让它发挥作用。

echo "please enter width and then height"

read width
read height

area=$(($width * $height))
inchesarea=$((area / 2.54))

echo $area
echo $inchesarea

我应该用bc这个吗?

答案1

你可能会这样,但这是一个常量,所以这也应该有效:

r=$(((area*10000)/254)) ; printf %d.%d  ${r%??} ${r#${r%??}}

当您处理大数字(例如超过 20 位数字)时,这会带来一些困难,但对于许多事情来说这是可以接受的。

这会自动将结果限制并四舍五入到小数点后两位 - 毕竟,在我们相乘之后,这不是小数位。然后,我们将结果作为字符串处理 - 首先从结果中删除最后两个字符并插入小数位,然后再次添加它们。

这应该是 POSIX 可移植的。

相关内容