Dúvida Formatação

8 respostas
R

Estou fazendo um programa de conversão de temperaturas para mim ir aprendendo GUI, mas não sei como formatar os valores para aparecerem somente duas casas depois da vírugla.

Usar o %.2f não consegui
E o String.format não sei muito bem quando usar.

...

private void conversao(ActionEvent e) {
		//De Fahrenheit para Celsius
		if(radioButton1.isSelected() && radioButton4.isSelected() == true){
			double c = (Integer.parseInt(textField1.getText()) - 32) / 1.8;
			label2.setText(textField1.getText() + " ºF são " + c + " ºC");
		}//end if
		
		//De Fahrenheit para Kelvin
		else if(radioButton1.isSelected() && radioButton6.isSelected() == true){
			double k = (Integer.parseInt(textField1.getText()) + 459.67 /1.8);
			label2.setText(textField1.getText() + "ºF são " + k + " ºK");
		}
		
		//De Celsius para Fahrenheit
		else if (radioButton2.isSelected() && radioButton3.isSelected() == true){
			double f = (Integer.parseInt(textField1.getText()) * 1.8) + 32;
			label2.setText(textField1.getText() + " ºC são " + f + " º F");
		}
		
		//De Celsius para Kelvin
		else if (radioButton2.isSelected() && radioButton6.isSelected() == true){
			double k = (Integer.parseInt(textField1.getText()) + 273.15);
			label2.setText(textField1.getText() + " ºC são " + k + " º K");
		}
		
		//De Kelvin para Fahrenheit
		else if(radioButton5.isSelected() && radioButton3.isSelected() == true){
			double f = (Integer.parseInt(textField1.getText()) * 1.8 - 459.67);
			label2.setText(textField1.getText() + " ºK são " + f + " º F");
		}
		
		//De Kelvin para Celsius
		else if(radioButton5.isSelected()&& radioButton4.isSelected() == true){
			double c = (Integer.parseInt(textField1.getText()) - 273.15);
			label2.setText(textField1.getText() + " ºK são " + c + " º C");
		}
		
		//Caso mesma temperatura
		else{
			label2.setText("Erro");
		}
		
	}

...

8 Respostas

Paulo_Faulstich

Dae Rafael.

Fiz uma classe para demonstração.

Você deve usar DecimalFormat, no contrutor dela você define a formatação que você quiser.

Acho que é o que você precisa. É só adaptar para o teu código.

import java.text.DecimalFormat;

/**
 *
 * @author paulo
 */

public class TesteDecimal {
     public static void main(String[] args) {

        double valor = 123.787;  
        DecimalFormat df = new DecimalFormat("###,##0.00");  
   
        System.out.println("Valor->" + df.format(valor)); 
         

    }
}

Flw.

rolemberg

ou entao da uma olhada na classe Math, ela tem alguns metodos statics que para quem esta aprendendo é muito bom…

R

Paulo valeu depois eu vou testar o DecimalFormat

E rolemberg também vou dar uma olhada não tinha me lembrado da classe Math ;D

Paulo_Faulstich

Eu já dei uma testada por cima.

Mas qualquer coisa posta ai.

Flw.

R

Valeu Paulo, mas preferi usar a classe Math que ja tinha conhecimento.Mas tinha esquecido :stuck_out_tongue_winking_eye:

É bom saber que existe esse DecimalFormat, para ser útil.É tipo uma mascara(mask)?

Paulo_Faulstich

É bem isso mesmo cara, é bem facil de usar é só escolher o tipo de mascara desejada no contrutor e deu.

:smiley:

M

Para formatação de números de telefones também se usa DecimalFormat?

Paulo_Faulstich

Cara que eu saiba é só para formatação de casas decimais.

Para formatação de numero podes dar uma olhada em NumberFormat

Abraço.

Criado 25 de maio de 2008
Ultima resposta 27 de mai. de 2008
Respostas 8
Participantes 4