我正在编写一个简单的bash脚本,默认情况下计算平方根为小数点后3位,但用户可以设置位数。没什么复杂的,我只是从1迭代到最低平方根。由于我的重击仍然很基本,所以这就是我想出的。
#!/usr/bin/env bash
num=${1}
places=${2-3}
i=0
while [[ $(( i*i )) -lt ${num} ]]
do
i=$(( i + 1 ))
done
echo ${i};
rem=$(( num % i ))
root="${i}."
for (( j=0; j<places; j++ ))
do
rem=$((rem * 10))
root="$root$((rem / i))"
rem=$((rem % i))
done
echo ${root}
但是由于某些原因,它不能对许多数字产生正确的结果像bashfile.sh 9 // will produce 3 but bashfile.sh 8 will return 3.666
的帮助一样,while [[ ]]
Bash不支持小数。您应该使用bc
或将所有内容乘以100,然后再除以100。