Echo número ímpar e imprimir próximo número par usando awk e evitando resultados como 1.00001e + 06

0

Eu tinha uma solução no AIX 7.1 onde eu poderia fazer um eco de um número ímpar e imprimir o próximo número par, por exemplo, abaixo:

$ 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

O problema que estou enfrentando é quando o número chega a mais de um milhão e ele começa a fornecer valores como abaixo:

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

O que eu devo conseguir é 1000012. O próximo número par que isso me dá é irrelevante. Contanto que seja um número par. Não tenho certeza se isso é uma limitação do HP-UX B.11.31, que estou testando.

Existe uma maneira de evitar resultados como esse?

    
por Christopher Karsten 14.03.2017 / 09:23

1 resposta

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

Saída

1000012
    
por 14.03.2017 / 10:27

Tags