evitando perder precisão com a opção nawk

1

Eu tenho um arquivo de dados composto por linhas com dados numéricos. O exemplo de dados numéricos é 4053.45677771. Quando eu executo operação aritmética com nawk como;

 nawk -F, '{print *1000}' data > data_2

valores numéricos no arquivo data_2 aparecem com exponencial e a precisão é perdida como; 4.05346e+06 Como posso multiplicar com 1000 sem uso exponencial e precisão perdida?

    
por deepblue_86 26.02.2016 / 15:07

1 resposta

3

Use printf para um melhor controle sobre a saída:

$ echo 4053.45677771 | nawk '{printf "%f\n",*1000}'
4053456.777710

Então, para o seu exemplo:

nawk -F, '{printf "%f\n",*1000}' data > data_2

Você também pode ficar com print se definir a variável OFMT (POSIX.1-2008 suporta):

$ echo 4053.45677771 | nawk -vOFMT='%f' '{print *1000}'  
4053456.777710
    
por muru 26.02.2016 / 15:13