Duvida arredondamento

8 respostas
vjfenix

Olá pessoal!!

Estou tentando arredondar o valor (54.625) para (54.65), alguem pode me dar uma ajuda ??

8 Respostas

gpd38

Utizize os métodos round(), ceil() e floor() da classe Math para arrendodar valores

De uma olhada neste exemplo e ve se ele te ajuda

// classe que contem o elemento aproximador
   import java.text.DecimalFormat;

    public class Aproximar {
       public static void main( String[] args ) {
      
         double num1 = 10, num2 = 3, divisao;
      
         divisao = num1 / num2;
      
      // esse aqui e o metodo aproximador
      
         DecimalFormat aproximador = new DecimalFormat( " 0.00 " );
      
      /* nesse caso eu estou aproximando pra duas casas 
      decimais depois da virgula, mas nada impede de 
      colocar + ou menos casas. E so almentar os zero   */
      
      // olhe o q eu fiz com a variavel da divisao 
         System.out.println( " A divisao é => " + aproximador.format(divisao)  );
      
      }
   }
vjfenix

O problema e que

vjfenix
gpd38:
Utizize os métodos round(), ceil() e floor() da classe Math para arrendodar valores De uma olhada neste exemplo e ve se ele te ajuda
// classe que contem o elemento aproximador
   import java.text.DecimalFormat;

    public class Aproximar {
       public static void main( String[] args ) {
      
         double num1 = 10, num2 = 3, divisao;
      
         divisao = num1 / num2;
      
      // esse aqui e o metodo aproximador
      
         DecimalFormat aproximador = new DecimalFormat( " 0.00 " );
      
      /* nesse caso eu estou aproximando pra duas casas 
      decimais depois da virgula, mas nada impede de 
      colocar + ou menos casas. E so almentar os zero   */
      
      // olhe o q eu fiz com a variavel da divisao 
         System.out.println( " A divisao é => " + aproximador.format(divisao)  );
      
      }
   }

O problema é que o resultado esta dando 54,62 e preciso que de 54.65

pmlm

54.625 nunca pode arredondar para 54.65, só arredonda pra 54.62 ou 54.63

T

vjfenix:
Olá pessoal!!

Estou tentando arredondar o valor (54.625) para (54.65), alguem pode me dar uma ajuda ??

Você precisa arredondar algo de 5 em 5 centavos ou de 50 em 50 gramas (ou seja, em frações de 1/20)? A forma mais simples, no seu caso, é multiplicar por 20, arredondar para o inteiro mais próximo, e a seguir dividir por 20.

54.625 * 20.0 == 1092.50
1092.50 -> 1093
1093 / 20.0 == 54.65

Se for isso então é só fazer isso que lhe indiquei.

vjfenix

thingol:
vjfenix:
Olá pessoal!!

Estou tentando arredondar o valor (54.625) para (54.65), alguem pode me dar uma ajuda ??

Você precisa arredondar algo de 5 em 5 centavos ou de 50 em 50 gramas (ou seja, em frações de 1/20)? A forma mais simples, no seu caso, é multiplicar por 20, arredondar para o inteiro mais próximo, e a seguir dividir por 20.

54.625 * 20.0 == 1092.50
1092.50 -> 1093
1093 / 20.0 == 54.65

Se for isso então é só fazer isso que lhe indiquei.


isso mesmo valeu!!

PadrE

Olá pessoal…

Estou lendo alguns exemplos de arredondamento e tudo mais… porque tenho que fazer manutenção em um sistema onde praticamente não tem arredondamento… ou seja… no banco é salvo o valor com muitas casas decimais…

O problema que ocorre é que na tela aparece os valores intermediários e depois o valor total…

Para exibir, ele formata com 2 casas… mas por trás… nos cálculos não faz nenhum arredondamento… ai acontece a seguinte situação:

Código:
1.366797 + 2.4844758 + 1.004985 = 4.8562578 (arredondando 4.86)

Exibição na tela:
1.37 + 2.48 + 1.00 = 4.85

Comparando:
4.8562578 - 4.85 = 0,0062578

Acima já podemos notar uma perda pequena… mas isso em um cálculo… onde o sistema faz alguns nesses estilo… Onde se fazer uma somatória dos valores em tela, não batem com os valores salvos no banco, ou parâmetros informados.

De primeiro momento pensei em fixar todas as variáveis em 2 casas, até mesmo nos cálculos, ou mesmo fixa os arredondamentos para baixo… ou em frações de 1/20.
Enfim… não sei muito bem que caminho tomar para acertar isso…

Alguma dica ?

Vlw !!

saxiro

Olha, se não me engano, se você colocar só pra arredondar na forma de apresentação, como por exemplo… na hora de mostrar o cálculo mostra com um math.ceil ou floor ou mesmo utilizando o Decimal Format… mas fizer os cálculos normalmente com as variáveis em questão… o programa calcula com o valor original, e não com o que é mostrado de forma arredondada… Pelo menos os cálculos que fiz funcionaram assim… :shock:

Criado 22 de abril de 2009
Ultima resposta 30 de set. de 2010
Respostas 8
Participantes 6