【发布时间】:2019-10-22 13:01:20
【问题描述】:
我正在编写一个简单的 bash 脚本,默认情况下计算平方根到小数点后 3 位,但用户可以设置位数……没什么复杂的,我只是从 1 迭代到最小的平方根。由于我的 bash 仍然是基本的,这就是我想出的。
#!/usr/bin/env bash
num=${1}
places=${2-3}
i=0
while [[ $(( i*i )) -lt ${num} ]] // <= The problem should be here
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.000 but bashfile.sh 8 will return 3.666,请帮忙,while [[ ]]有什么问题
【问题讨论】:
标签: bash decimal-point square-root