preciso que sta calculadora faça calculos com numeros decimais mais estou com dificuldade para isso
segue o codigo:
package br.faculdade.negocio;
import javax.swing.JTextField;
public class Calculos {
private JTextField digitado;
private long valorAnterior;
private boolean operacaoLogica;
private char operacao;
private float ponto;
// Este é o construtor
public Calculos(JTextField caixa) {
digitado = caixa;
this.limpar();
}
public void somar() {
if (operacao != '=') {
valorAnterior += Long.parseLong(digitado.getText());
} else {
valorAnterior = Long.parseLong(digitado.getText());
}
digitado.setText(Long.toString(valorAnterior));
operacaoLogica = true;
operacao = '+';
}
public void sub() {
if (operacao != '=') {
valorAnterior -= Long.parseLong(digitado.getText());
} else {
valorAnterior = Long.parseLong(digitado.getText());
}
digitado.setText(Long.toString(valorAnterior));
operacaoLogica = true;
operacao = '-';
}
public void mult() {
if (operacao != '=') {
valorAnterior *= Long.parseLong(digitado.getText());
} else {
valorAnterior = Long.parseLong(digitado.getText());
}
digitado.setText(Long.toString(valorAnterior));
operacaoLogica = true;
operacao = '*';
}
public void div() {
if (operacao != '=') {
valorAnterior /= Long.parseLong(digitado.getText());
} else {
valorAnterior = Long.parseLong(digitado.getText());
}
digitado.setText(Long.toString(valorAnterior));
operacaoLogica = true;
operacao = '/';
}
public void ponto() {
}
public void setValor(String botao) {
if (operacaoLogica == false) {
// Escreve o botão pressionado na caixa de texto, acrescentando o valor também.
digitado.setText(Long.toString(Long.parseLong(digitado.getText() + botao )));
} else {
// Apenas escreve o valor digitado na caixa de texto
digitado.setText(Long.toString(Long.parseLong(botao)));
operacaoLogica = false;
}
}
public void igual() {
switch (operacao) {
case '+':
valorAnterior = valorAnterior + Long.parseLong(digitado.getText());
digitado.setText(Long.toString(valorAnterior));
operacao = '=';
operacaoLogica = true;
break;
case '-':
valorAnterior = valorAnterior - Long.parseLong(digitado.getText());
digitado.setText(Long.toString(valorAnterior));
operacao = '=';
operacaoLogica = true;
break;
case '*':
valorAnterior = valorAnterior * Long.parseLong(digitado.getText());
digitado.setText(Long.toString(valorAnterior));
operacao = '=';
operacaoLogica = true;
break;
case '/':
valorAnterior = valorAnterior / Long.parseLong(digitado.getText());
digitado.setText(Long.toString(valorAnterior));
operacao = '=';
operacaoLogica = true;
break;
}
}
public void limpar() {
digitado.setText("0");
valorAnterior = 0;
operacaoLogica = false;
char operacao = '\0';
}
private void setDecimalSeparator(char c) {
throw new UnsupportedOperationException("Not yet implemented");
}
}