Arredondar numero de saída [RESOLVIDO]

1. Arredondar numero de saída [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/01/2018 - 15:51h

pessoas ... tenho o comando
ps -A --sort -rss -o pid,comm,pmem,pcpu | awk '{n+=$4} END {print n}' 


tem como já nesse awk eu obter a saída arredondada para cima ou para baixo dependendo do decimal, ou o jeito seria no script mesmo ???


  


2. Re: Arredondar numero de saída [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/01/2018 - 18:07h

Mauriciodez escreveu:

pessoas ... tenho o comando
ps -A --sort -rss -o pid,comm,pmem,pcpu | awk '{n+=$4} END {print n}' 


tem como já nesse awk eu obter a saída arredondada para cima ou para baixo dependendo do decimal, ou o jeito seria no script mesmo ???


Boa tarde Mauricio.
Veja se é o que precisa:
awk 'BEGIN { printf "%.2f\n", sqrt(3) }'
1.73
awk 'BEGIN { printf "%.f\n", sqrt(3) }'
2


Att.:
Marcelo oliver


3. Re: Arredondar numero de saída [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/01/2018 - 18:24h

msoliver escreveu:
Boa tarde Mauricio.
Veja se é o que precisa:
awk 'BEGIN { printf "%.2f\n", sqrt(3) }'
1.73
awk 'BEGIN { printf "%.f\n", sqrt(3) }'
2



velho ... na verdade não ... olha só as diferenças
mauricio@phantom ~ $ ps -A --sort -rss -o pid,comm,pmem,pcpu | awk '{n+=$4} END {print n}'
33.5
mauricio@phantom ~ $ ps -A --sort -rss -o pid,comm,pmem,pcpu | awk 'BEGIN { printf "%.f\n", sqrt(3) }'
2
mauricio@phantom ~ $


então eu precisaria do awk arredondar o 33.5 e seu comando não sei o que ele está arredondando !!!

OBS: Se der para postar e explicar tb eu agradeço ... hehehhehehhe

Abçs.

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



4. Re: Arredondar numero de saída [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 01/01/2018 - 21:58h

Vejaí se funciona:
ps -A --sort -rss -o pid,comm,pmem,pcpu | awk '{n+=$4} END {printf("%d\n",n + 0.5)}' 



5. Re: Arredondar numero de saída [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/01/2018 - 22:04h

Ryuk escreveu:

Vejaí se funciona:
ps -A --sort -rss -o pid,comm,pmem,pcpu | awk '{n+=$4} END {printf("%d\n",n + 0.5)}' 


massa ... explica por gentileza esse awk velho ...

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



6. Re: Arredondar numero de saída [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 01/01/2018 - 22:26h

O truque foi mais ou menos assim...
printf("%d\n"... ---> vai exibir o número sem as casas decimais 39.9 = 39
...,n + 0.5)} ---> daí é só somar a saída "n" com 0.5, fazendo o arredondamento como nos exemplos abaixo:
39.7 + 0.5 = 40.2 --> 40
39.4 + 0.5 = 39.9 --> 39
39.5 + 0.5 = 40.0 --> 40



7. Re: Arredondar numero de saída [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/01/2018 - 04:30h

Mauriciodez escreveu:

msoliver escreveu:
Boa tarde Mauricio.
Veja se é o que precisa:
awk 'BEGIN { printf "%.2f\n", sqrt(3) }'
1.73
awk 'BEGIN { printf "%.f\n", sqrt(3) }'
2



velho ... na verdade não ... olha só as diferenças
mauricio@phantom ~ $ ps -A --sort -rss -o pid,comm,pmem,pcpu | awk '{n+=$4} END {print n}'
33.5
mauricio@phantom ~ $ ps -A --sort -rss -o pid,comm,pmem,pcpu | awk 'BEGIN { printf "%.f\n", sqrt(3) }'
2
mauricio@phantom ~ $


então eu precisaria do awk arredondar o 33.5 e seu comando não sei o que ele está arredondando !!!

OBS: Se der para postar e explicar tb eu agradeço ... hehehhehehhe

Abçs.

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------


Mauricio, o comando que passei é só um exemplo do uso de printf....
É necessário adaptar para o seu uso.... Segue:
ps -A --sort -rss -o pid,comm,pmem,pcpu | awk '{n+=$4} END {printf "%.f\n" ,n}'

No exemplo citado o awk está arredondando a raiz de "3"
msoliver



8. Re: Arredondar numero de saída [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 02/01/2018 - 11:40h

A solução do msoliver é melhor (a minha era uma gambiarra... hehehe). Marca aí!!!
$ echo 45.8 | awk '{printf "%.f\n" ,$1}'
46

$ echo 45.2 | awk '{printf "%.f\n" ,$1}'
45

$ echo 45.5 | awk '{printf "%.f\n" ,$1}'
46



9. Re: Arredondar numero de saída [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/01/2018 - 12:27h

Rapaziada ... essas soluções de vc's são muito complicadas para eu entender e adaptar aqui, eu só tenho conhecimento básico do básico de shell script ( praticamente uma anta )... kkkkkkKKKKKKKK .... então é o seguinte ... valeu aí pelas ajudas, vou marcar como resolvido até pq eu desisti da idéia de arredondar a parada, eu estava querendo arredondar pq estava me dando erros de formatação ... tipo assim ... quando tinha decimal a parada mostrava "X.X" e quando era inteiro tava mostando "X", mas consegui fazer com que nos inteiros mostrasse "X.0"

Abçs

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts