Calaculando decimal

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

}

Evite duplicar posts. Ajude a menter o fórum organizado.