基本上我需要将厘米转换为英寸,我试图通过将厘米面积除以 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 可移植的。