Arredondamento

Amigos,

como faço para executar um arredondamento de duas casas decimais na variável vlReceber?

import javax.swing.JOptionPane;

public class Vendas{

  public static void main ( String args[] ){
  	
  	
  // Variáveis do Aplicativo
  
  String acesso1;                // Variável de Acesso    
  String nmVendedor;            // Nome Vendedor
  String numItens1;            // Numero de Itens Vendido Por Vendedor     
  String vlVendas1;           // Valor das Vendas Por Item 
   
  
  int acesso;               // Variável de Acesso
  int salarioFixo;         // Salário Fixo Do Vendedor
  int numItens;           // Numero de Itens Vendido Por Vendedor  
  int contNumItens;      // Contador Numero de Itens
  int contVendas;      // Contador das Vendas
  
  
  
  double comissao;      // Comissão Fixa do Vendedor            
  double vlReceber;    // Valor Total Pago Para Vendedor
  double vlVendas;    // Valor das Vendas Por Item
  
  // Inicialização das Variáveis
  
  salarioFixo  = 200;
  comissao     = 0.9;
  vlReceber    = 0.00;
  contNumItens = 0;
  contVendas   = 0;
  
  
       
  // Controle de Acesso
  
  acesso1 = JOptionPane.showInputDialog("Para Iniciar Digite [1] Sair [0]");
  
  
  acesso = Integer.parseInt (acesso1);
  
  
  if ( acesso != 1  || acesso == 0 ) 
  {
      
      System.exit(0);
      
  } // End Bloco IF
  
        
  // Inicio do Controle dos Itens e Vendas
  else
  {
  	   
  	   nmVendedor = JOptionPane.showInputDialog("Informe o nome do Vendedor");
  	   
  	   numItens1  = JOptionPane.showInputDialog("Informe o Numero de Itens Vendido");
  	   
       numItens   = Integer.parseInt(numItens1); 
  	   
  	   
  	   while(contNumItens < numItens)
  	   {
  	   	
  	   	   vlVendas1 = JOptionPane.showInputDialog("Informe Venda");
  	   	   
  	   	   vlVendas  = Double.parseDouble(vlVendas1);
  	   	   
  	   	   vlReceber = ( vlVendas * comissao ) + salarioFixo;
  	   	   
  	   	   contVendas    +=1;
  	   	   
  	   	   contNumItens  +=1;
  	   	   
  	   	   
  	   	   System.out.println("Item:" + contNumItens + "\n" + "Vendedor: " + nmVendedor + "\n"  + "Recebe: " + vlReceber);
  	   	   
  	   	         	   	         	   	         	   	
  	   } // End While   
  	      
   } // End Bloco Else	    	
  	
   System.exit(0);
   	   
} // End the Class Vendas

} // End the Metodo Main

System.out.println(“Item:” + contNumItens + “\n” + "Vendedor: " + nmVendedor + “\n” + "Recebe: " + vlReceber);

System.out.printf(“Item : %d \nVendedor : %s \nRecebe %2.f” , contNumItens,nmVendedor ,vlReceber);

System.out.printf("%.2f", valor);

Cuidado com arredondamentos…

A função de arredondamento contida na classe Math é round.

Porém a implementação dela é:

é return (int)floor(a + 0.5f);

Que não é compativel com a norma brasileira (ABNT-NBR 5891:1977).

Existem outras implementações mais ricas, tais como:
Commons Math: http://commons.apache.org/math/ mais precisamente a classe MathUtils (método round)

Não sei se o pessoal do BrazilUtils desenvolveu algo nessa linha, vale a pena dar uma olhada.

Opz. me equivoquei.
Você quer mostrar arredondado ou vai precisar do valor guardado com o arredondamento?

Leia esse post:

http://www.guj.com.br/posts/list/16727.java

E nesse também:

http://www.guj.com.br/posts/list/80463.java

Abraço.