出力

出力

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

関連情報