Calculo IMC

3 respostas
G

Ola minha gostaria de saber como que faco para o resultado nao aparecer 22,44500 aparece se 22,4 por exemplo.

/*
package imc;
/**
 *
 * @author Gleydson Epifanio
 */
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Imc extends JFrame implements ActionListener {

    JLabel lb_peso, lb_altura;
    JTextField tf_peso, tf_altura;
    JButton bt_calcular, bt_sair;
    JPanel pNorte, pCentro, pSul;
    float altura,imc;
    float peso;
    

    public Imc() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("IMC");
        setLayout(new BorderLayout());

        lb_peso = new JLabel("PESO:");
        tf_peso = new JTextField();
        pNorte = new JPanel(new GridLayout(1, 2));
        pNorte.add(lb_peso);
        pNorte.add(tf_peso);
        add(pNorte, BorderLayout.NORTH);

        lb_altura = new JLabel("ALTURA:");
        tf_altura = new JTextField();
        pCentro = new JPanel(new GridLayout(1, 2));
        pCentro.add(lb_altura);
        pCentro.add(tf_altura);
        add(pCentro, BorderLayout.CENTER);

        bt_calcular = new JButton("CALCULAR");
        bt_sair = new JButton("SAIR");
        pSul = new JPanel(new GridLayout(1, 2));
        pSul.add(bt_calcular);
        pSul.add(bt_sair);
        add(pSul, BorderLayout.SOUTH);

        bt_sair.addActionListener(this);
        bt_calcular.addActionListener(this);

        setVisible(true);
        setResizable(false);
        setLocation(100, 75);
        pack();
    }

    public void actionPerformed(ActionEvent e) {
        Object Sair = e.getSource();
        if (Sair == bt_sair) {
            System.exit(0);
        }
        Object Calcular = e.getSource();
        if(Calcular == bt_calcular){
           peso = Float.parseFloat(tf_peso.getText());
           altura = Float.parseFloat(tf_altura.getText());
           imc = peso/(altura*altura);
           
           
            JOptionPane.showMessageDialog(null,""+imc+" IMC");
        }
    }

    public static void main(String[] args) {
        new Imc();
    }
}

3 Respostas

A

A internet está repleta de exemplos que ensinam a formatar floats. Dê uma pesquisada.

G

Vlw Obrigado nem sabia que dava para formatar float obrigado.

C

Segue uma alternativa:

public void actionPerformed(ActionEvent e) {  
        Object Sair = e.getSource();  
        if (Sair == bt_sair) {  
            System.exit(0);  
        }  
        Object Calcular = e.getSource();  
        if(Calcular == bt_calcular){  
           peso = Float.parseFloat(tf_peso.getText());  
           altura = Float.parseFloat(tf_altura.getText());  
           imc = peso/(altura*altura);  
           
           //Ate aqui tudo igual
            StringBuilder sb = new StringBuilder();
            Formatter f = new Formatter(sb, Locale.getDefault());
             
            JOptionPane.showMessageDialog(null,"Seu IMC é "+f.format("%,.2f",imc)+"!");  
        }  
    }

Um grande abraço,

Criado 19 de junho de 2011
Ultima resposta 19 de jun. de 2011
Respostas 3
Participantes 3