산출

산출

AIX 7.1에는 아래와 같이 홀수를 에코하고 다음 짝수를 인쇄할 수 있는 솔루션이 있습니다.

$ echo "3" | bc -l | awk '{printf("%.0f\n", $1)}' | awk '{$0=int($0/4+.75)*4}1'
4

$ echo "9" | bc -l | awk '{printf("%.0f\n", $1)}' | awk '{$0=int($0/4+.75)*4}1'
12

내가 직면하고 있는 문제는 숫자가 100만 개를 초과하면 다음과 같은 값을 제공하기 시작한다는 것입니다.

$ echo "1000009" | bc -l | awk '{printf("%.0f\n", $1)}' | awk '{$0=int($0/4+.75)*4}1'
1.00001e+06

내가 받아야 할 것은 1000012입니다. 그것이 나에게 제공하는 다음 짝수는 관련이 없습니다. 짝수라면 말이죠. 이것이 제가 테스트하고 있는 HP-UX B.11.31의 제한 사항인지 확실하지 않습니다.

그러한 결과를 피할 수 있는 방법이 있습니까?

답변1

N=1000009
echo "${N:-3} 3+4/4*p" | dc

산출

1000012

관련 정보