변수를 숫자로 나누시겠습니까? [복사]

변수를 숫자로 나누시겠습니까? [복사]

기본적으로 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 이식 가능해야 합니다.

관련 정보