[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Arredondamento
From: |
Alexander Franca |
Subject: |
Re: [shell-script] Re: Arredondamento |
Date: |
Wed, 17 Aug 2005 20:14:07 -0300 |
Eu tentaria usando o 'cut' para pegar os valores decimais e depois tratar esses
valores para ver se é para arredondar.
A solução parece bizonha e acredito que outros da lista arrumem soluções muito
mais inteligentes.
A bizonhisse seria:
#!/bin/bash
read -p "Digite um numero:" numero
resultado=$numero
# procura por um ponto no resultado
tem_decimal=`echo $resultado | grep \\\.`
# se o resultado não for nulo
if [ ! -z $tem_decimal ]
then
# pega os caracteres depois do ponto
decimais=`echo $resultado | cut -f 2 -d '.'`
# pega os caracteres antes do ponto
inteiro=`echo $resultado | cut -f 1 -d '.'`
# se menor ou igual a 4, diminui, caso contrario, aumenta
if [ ${decimais:0:1} -le 4 ]
then
let resultado=$inteiro-1
else
let resultado=$inteiro+1
fi
fi
echo "RESULTADO É: $resultado"
PS: alguém pode me dizer por que eu tive que usar 3 barras-invertidas para o
grep conseguir "enxergar" o caracter ponto?
[]'s
Alexander Franca
> De: "fcuyemura" <address@hidden>
> Data: Wed, 17 Aug 2005 21:09:30 -0000
> Para: address@hidden
> Assunto: [shell-script] Re: Arredondamento
>
> Senhores,
>
> Vou explicar melhor exemplificando:
>
> a) Se o resultado da conta for 23.45 quero que arredonde para 23
>
> b) Se o resultado da conta for 23.95 quero que arredonde para 24
>
> Grato,
> Flávio