Ir ao conteúdo

Posts recomendados

Postado
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!

  • Moderador
Postado

@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()).

  • Moderador
Postado

@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.

Postado

@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.

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...