Como passar uma caixa de texto para um valor BigDecimal?

2 respostas
java
Moraisdelimahigor

Já tentei essa gambiarra, mas não deu certo!

package CalculandoIMC;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JTextField;

import javax.swing.JLabel;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JOptionPane;

import java.math.BigDecimal;

public class IMC extends JFrame {

private JLabel kg, volume, amc;
private JButton limpar, calcular;
private JTextField quilograma, altura, imc;
private BigDecimal a, b;

public IMC() {
    super("Calculando o IMC");
    setLayout(new FlowLayout());
    
    a = new BigDecimal(quilograma.getText());
    b = new BigDecimal(altura.getText());

    kg = new JLabel("Massa (KG):");
    add(kg);

    quilograma = new JTextField();
    quilograma.setEditable(true);
    add(quilograma);

    volume = new JLabel("Altura:");
    add(volume);
    altura = new JTextField();
    altura.setEditable(true);
    add(altura);

    amc = new JLabel("IMC");
    add(amc);

    calcular = new JButton("Calcular IMC");
    calcular.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            imc.setText("IMC: "+a/b);
        }
    });
    imc = new JTextField();
    imc.setEditable(false);
    add(imc);
}

}

OBS.: O erro é nessa linha: imc.setText("IMC: "+a/b);

2 Respostas

E

BigDecimal não funciona a/b você tem que usar o divide por exemplo para cada coisa o BigDecimal tem sua função:

imc.setText("IMC: "+a.divide(b));

Tino_

@Moraisdelimahigor da uma olhada na api…
pode te ajudar bastante…rs

https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html

Criado 22 de abril de 2016
Ultima resposta 22 de abr. de 2016
Respostas 2
Participantes 3