Dúvida Formatação

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");
		}
		
	}

...

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.

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

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

Eu já dei uma testada por cima.

Mas qualquer coisa posta ai.

Flw.

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)?

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

:smiley:

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

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

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

Abraço.