NPR para numeros com mais de 1 algarismo e casas decimais

Estou montando um projeto onde ele devo digitar uma expressão e ele deve fazer o calculo, consegui fazer para um algarismo, a ideia agora é fazer para 2 algarismo e casas decimais, estou com dificuldades pra implantar a logica podem me ajudar?? O mesmo usa Notação polonesa reversa juntamente com pilha dinamica.

Segue abaixo o que já foi feito!!

Att

Leandro

[code]

import javax.swing.;
import java.util.
;
public class NPR_Numeros {

//public class NPR_Numeros() {
	  public static float avaliaExpressao(String npr){
	Stack p = new Stack();
	char letra;
	float valor=0, x, y;
	String valor2="";
	for(int i=0;i<npr.length(); i++){
		letra = npr.charAt(i);
		if(letra>='0' && letra <='9'){
			//valor2= JOptionPane.showInputDialog(null, "Entre com o valor da leta "+letra);
			p.push(letra);
		}
		else if(letra=='+' ||letra=='-' ||letra=='*' ||letra=='/'){

			x=Float.parseFloat(p.pop().toString());
			y=Float.parseFloat(p.pop().toString());
			switch(letra){
				case '+': valor = y+x; break;
				case '-' : valor =y-x; break;
				case '*': valor = y*x; break;
				case '/' : valor =y/x; break;
			}
			p.push(valor);
		}
	}
	valor = Float.parseFloat(p.pop().toString());
//	String valor3="";
//	valor3=valor.toString();
	return valor;
}

public static int prio (char op){
int resp=0;
switch(op){
case ‘(’: resp=1; break;
case ‘+’: resp=2; break;
case ‘-’: resp=2; break;
case ‘*’: resp=3; break;
case ‘/’: resp=3;
} return resp;

}

public static String toNPR2(String a){
	a = a.toUpperCase();
	Stack pri = new Stack();
	String saida="";
	char ch;
	for (int i=0; i<a.length();i++){
		ch = a.charAt(i);
	if(ch>='0' && ch<='9'){
			saida+=ch;
		}
 	else if(ch=='+' || ch=='-' || ch=='*' || ch=='/'){
			while(!pri.empty() && prio(pri.peek().toString().charAt(0)) >= prio(ch)){
				saida+=pri.pop();	}
			pri.push(ch + "");
		}
	else if (ch=='('){
		pri.push(ch);
	}
	else if (ch==')'){
		while(!pri.peek().toString().equals("(")){
			saida+=pri.pop().toString();}
			pri.pop();
	}

	}do{
		saida+=pri.pop().toString();
	}while(!pri.empty());
		 return saida;
}
public static void main(String args[]){
	String x ="";
   String resp="";
   x= JOptionPane.showInputDialog(null, "Entre com a equação: ");
   resp = toNPR2(x);
JOptionPane.showMessageDialog(null,"Resposta= " + avaliaExpressao(resp));
}

}[/code]