Formatação numérica

Estou tendo problemas na exibição do resultado de um cálculo que meu programa está fazendo. É o seguinte, montei um programinha que recebe dados referentes a altura e sexo da pessoa, mediante estes dados o programa calcula qual seria o peso ideal para esta pessoa. Só que na hora de exibir este peso ele está vindo com várias casas depois da vírgula, sendo que eu gostaria de exibí-lo somente com duas. Ex.:

Lembrando que as variáveis foram declaradas como double. Agradeço se alguém puder me dar uma dica.

Cara, acho que isso deve funcionar…

[code]import java.text.DecimalFormat;

DecimalFormat df = new DecimalFormat(“0.00”);
df.format(seu double);[/code]

Flw

eae blz? :cool:

usa o DecimalFormat…

vai um exemplinho rapido

import java.text.*;

public class teste {

    public teste() {
        
        // uso do formatador de números com isso vc vai ter o formato dejesado
        // nesse caso se o valor for 0 será exibido 0.00
        DecimalFormat df = new DecimalFormat(",##0.00");
        
        double num = 12.1250216150125;
        
        System.err.print( df.format(num) );
    }
    
    public static void main(String[] args) {
       new teste();        
    }
    
}

:wink:

[]'s
Erko Bridee

Funciona sim!! :grin:

Daí guri,

Para formatar a exibição de números utilizamos a classe NumberFormat pertencente ao pacote java.text. Os formatadores permitem preparar um valor como uma string estruturada como padrão pros valores a serem exibidos.

Para obter os formatadores padrão podemos escrever:

// Para obter o formatador de números
NumberFormat nfd = NumberFormat.getNumberInstance();

Para utilizá-los acionamos seu método format que produz a string formatada a partir do valor que se deseja formatar:

double x = 1234.0/567;
System.out.println("Valor sem formato: "+ x);
NumberFormat nf = NumberFormat.getNumberInstance();
String xf = nf.format(x);
System.out.println("Valor formatado: "+ xf);

Muitas vezes o resultado obtido através dos formatadores padrão não é conveniente. Nestas situações utilizamos a classe DecimalFormat que permite a definição de um formato particular. Para isto criamos um objeto desta classe informando qual o formato desejado através de uma string de controle. O uso é semelhante ao dos formatadores padrão:

DecimalFormat df = new DecimalFormat("#,###.0000");
System.out.println(df.format(2/3)); // exibe 0.6667
System.out.println(df.format(10/5)); // exibe 2.0000

A string de controle pode ser definida através dos seguinte símbolos:

Símbolo - Descrição 
#       - Dígito opcional (exibido apenas se diferente de zero) 
0       - Dígito obrigatório (exibido mesmo que zero) 
.       - Separador decimal (substituído pelo símbolo local) 
,       - Separador de grupos (Substituído pelo símbolo local) 
;       - Separa formato de números positivos de negativos 
-       - Prefixo negativo 
%       - Divide por 100 e exibe como porcentagem 
outro   - Símbolo literal includo exatamente como especificado 

Segue um exemplo que demostra a utilização das classes formatadoras:

// FormatNumbers.java

import java.text.*;

public class FormatNumbers {
  public static final void main(String args[]) {
    double valor = 20000.0 / 3.0;
    String valorFormatado;
    NumberFormat nf;

    System.out.println("Valor sem formatacao");
    System.out.println("2000.0 / 3.0 = " + valor);

    System.out.println("Formato Numerico");
    nf = NumberFormat.getNumberInstance();
    valorFormatado = nf.format(valor);
    System.out.println("2000.0 / 3.0 = " + valorFormatado);

    System.out.println("Formato em Moeda");
    nf = NumberFormat.getCurrencyInstance();
    valorFormatado = nf.format(valor);
    System.out.println("2000.0 / 3.0 = " + valorFormatado);

    System.out.println("Formato Percentual");
    nf = NumberFormat.getPercentInstance();
    valorFormatado = nf.format(valor);
    System.out.println("2000.0 / 3.0 = " + valorFormatado);

    System.out.println("Formato especifico");
    DecimalFormat df = new DecimalFormat("##,##,00.0");
    valorFormatado = df.format(valor);
    System.out.println("2000.0 / 3.0 = " + valorFormatado);
  }
}

Retirei essas informações de http://docente.saofrancisco.edu.br/peter/javafaq/jfaq0036.html

E aqui podes encontrar diversas outras dicas bem interessantes, que até eu nem fazia idéia :stuck_out_tongue:

[]s

Valeu pela ajuda pessoal, eu utilizei o exemplo do renan_daniel e funcionou. Obrigado! :joia:

Precisando tamo ai!! :grin: :razz:

Uopa!

É isso mesmo, no final são todos iguais.

A diferença é que o meu é mais bonito.
hueuhehueuheuhehe

[]s