기본적으로 cm를 인치로 변환해야 하는데 cm 단위의 영역을 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 이식 가능해야 합니다.