Ir ao conteúdo
  • Cadastre-se
Guigame

Java Arredondamento p/cima e duas casas decimais

Recommended Posts

if (op == 1 && d == 1) {
				System.out.println("Você precisará de:" + qtd/area1 +  " tijolos para constuir o muro");
				System.out.println("Para não faltar, compre:"+1.1 * qtd/area1+ " tijolos ");
				System.out.println("Você precisará também de:"+(qtd/area1)/250+" saco(s) de cimento");
				System.out.println("O custo médio é de: R$" +((qtd/area1) * 0.35) + 35 * ((qtd/area1)/250)+ "  ");
				}

Gostaria de saber como faço para arredondar para cima e colocar o resultado em duas casas decimais, pois o resultado esta assim :

você precisará de:15037.593984962406 tijolos para constuir o muro
Para não faltar, compre:16541.35338345865 tijolos 
Você precisará também de:60.150375939849624 saco(s) de cimento
O custo médio é de: R$5263.1578947368422105.2631578947367

Gostaria que ficasse assim :

Você precisará de:15037.59 tijolos para constuir o muro
Para não faltar, compre:16541 tijolos // arredondar para cima
Você precisará também de:60 saco(s) de cimento // arredondar para cima
O custo médio é de: R$5263.16 // arredondar para cima e deixar com duas casas decimais

SE puderem em ajudar, eu serei muito grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Guigame Olá,

 

Pelo que lembro, você pode fazer de duas formas:

usando o DecimalFormat com esta sintaxe:

private DecimalFormat formatador = new DecimalFormat(formato); 

Ou usar o  printf e %.2f 

Por exemplo:

System.out.printf("Media do Primeiro Bimestre = %.2f %n",  (mediaPrimeiroBimestre / 3));

%.2f - pega o argumento e imprime com 2 casas depois da vírgula.
%n - passa para a próxima linha (equivalente ao println()).

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Guigame Aí é que está meu amigo. 

Demos um norte para você!  Você deve pesquisar um pouco e implementar no seu código.

Abaixo deixo um exemplo extremamente simples do uso

 

  double numero = 1.9851008;
  DecimalFormat formatador = new DecimalFormat("0.00");
  System.out.println("Número antes da formatação: " + numero);
  System.out.println("Número depois formatação: " + formatador.format(numero));

O segundo jeito é usando o printf.  que é o mesmo println só que formatado do jeito que quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Guigame Bom dia.

 

Acho que apenas "maquiar" a saída não fica legal. O negócio é tratar os números mesmo.

 

Como você tem itens que seriam unidades, o correto seria arredondar para cima. Você não compra 15037.59 tijolos. Você compra 15038 tijolos.

 

Para ter 15038 tijolos, se usar 

int tijolos = Math.round(qtdade_de_tijolos);

Agora, se quiser 15037.59 tijolos, a coisa é mais chata

 

double result = 15037.593984962406 * Math.pow(10, 2);
result = Math.round(result) / Math.pow(10, 2));

A saída desse cálculo é 15037.59, coisa que você deveria usar apenas para calcular o valor.

 

Trabalhar com valores com vírgula em Java é um saco, ainda mais quando se precisa trabalhar com valores monetários. Existem diversos exemplos Internet afora e como fazer para lidar com eles, mas a solução nunca é simples.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×