리눅스에서 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으로 이루어진 경우에는 그렇지 않습니다.