bc - 명령: 적절한 결과를 제공하지 않았습니다.

bc - 명령: 적절한 결과를 제공하지 않았습니다.

리눅스에서 bc 명령어를 사용하여 간단한 계산을 하려고 합니다. 일단 소수점 이하 모든 자리의 값을 원합니다. 다른 때에는 정수 부분만 원합니다.

전체 소수점 이하 자릿수를 얻고 싶습니다.

$ echo "scale=10; ((900/1303) * 928)/600" | bc
1.0683039140

이제 여기서는 소수 부분을 제외하고 1(정수) 부분만 가져오려고 합니다.

$ echo "scale=0; ((900/1303) * 928)/600" | bc
0

0을 표시하는 방법. 1이 표시되어야합니다

누구든지 도울 수 있습니까? 이 경우 정수 부분을 추출하기 위해 awk 또는 sed를 사용하고 싶지 않습니다.

답변1

노력하다:

echo "scale=20; a=((900/1303) * 928)/600; scale=0; a/1" | bc

그러나 이는 소수점 이하 자릿수를 잘라내는 것이므로 결과 1.9999도 잘립니다 1.

하지만 그것은 당신이 요구하는 것 같습니다.


0을 표시하는 방법. ...

900/1303(소수점은 0)이 최종 결과에 0반영 되기 때문입니다 . 0아마도 다시 주문한다면:

$ echo "( 900 * 928 / 1303 ) / 600" | bc
1

...1로 표시되어야 합니다.

아니요, 중간 나누기가 소수점 이하 자릿수 0으로 이루어진 경우에는 그렇지 않습니다.

관련 정보