【发布时间】:2016-09-17 07:11:01
【问题描述】:
这是我的第一个 bash 脚本,在设置小数精度时遇到了一点问题。我的任务是创建一个 bash 脚本,计算给定直径 20 的圆的面积和周长。这就是我目前拥有的
#!/bin/bash
clear
diameter=$1 # storing first argument
radius=$(echo "scale=5;$diameter / 2" | bc) # setting radius
# echo "$radius"
# calculate area of a circle
area=$(echo "scale=5;3.14 * ($radius * $radius)" | bc -l) # A = pi(r^2)
# calculate circumference of a circle
circum=$(echo "scale=5;2 * 3.14 * ($radius)" | bc -l) # C = 2(pi)(r)
echo "Circumference: $circum"
echo "Area: $area"
当我运行脚本时,它会打印出来
Circumference: 62.80000
Area: 314.00000
应该是打印出来的
Circumference: 62.83185
Area: 314.15926
我不明白为什么它没有显示正确的十进制值。我已经给scale=5 显示它正在执行的五个小数位。我很困惑为什么会出现零而不是真正的十进制值。任何帮助或建议将不胜感激。
【问题讨论】:
-
半径=$((echo "scale=5;$diameter / 2" | bc))。试试这样。