Mas ayuda

Que tal!
Hice lo que me dijiste en el applet de la calculadora y la verdad mejoró mucho lo que hace el applet, todavia estoy trabajandole a detalles, pero donde mas estoy pegado es para convertir el text de un numero con punto, en double, ejemplo yo ingreso en el texto 12.5; si esto es string(por que está en un campo de texto) necesito saber como lo paso a double para poder realizar las operaciones como en una calculadora normal, ya le mandé el punto al cuadro de texto pero cuando le oprimo otro numero para que quede despues de la coma me saca una excepcion que es : NumberFormatException: For Input String: "12.5" Obviamente es por que estoy queriendo pasarlo a double y no me reconoce la coma; Entonces como hago.
De antemano gracias de nuevo y te pego el codigo como va.
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.lang.*;
// <applet width="400" height="400" code="AppletCalculadora"></applet>
public class AppletCalculadora extends Applet implements ActionListener{
Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18;
TextField t1;
Panel pan2;
double num1 = 0.0;
double num2 = 0.0;
double num3 = 0.0;
String ultOper = "";
int punto = 0;
//String operador = "";
//String total = "";
public AppletCalculadora() {
setLayout(new BorderLayout());
Panel pan2 = new Panel();
t1 = new TextField();
add("North",t1);
add("Center",pan2);
pan2.setLayout(new GridLayout(6, 3, 10, 10));
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
b10 = new Button(".");
b11 = new Button("0");
b12 = new Button("CE");
b13 = new Button("+");
b14 = new Button("-");
b15 = new Button("=");
b16 = new Button("*");
b17 = new Button("/");
b18 = new Button("C");
pan2.add(b1);
pan2.add(b2);
pan2.add(b3);
pan2.add(b4);
pan2.add(b5);
pan2.add(b6);
pan2.add(b7);
pan2.add(b8);
pan2.add(b9);
pan2.add(b10);
pan2.add(b11);
pan2.add(b12);
pan2.add(b13);
pan2.add(b14);
pan2.add(b15);
pan2.add(b16);
pan2.add(b17);
pan2.add(b18);
b1. AddActionListener(this);
b2. AddActionListener(this); // Se da la facultad a los botones de
b3. AddActionListener(this); // poder ser escuchados
b4. AddActionListener(this);
b5. AddActionListener(this);
b6. AddActionListener(this);
b7. AddActionListener(this);
b8. AddActionListener(this);
b9. AddActionListener(this);
b10. AddActionListener(this);
b11. AddActionListener(this);
b12. AddActionListener(this);
b13. AddActionListener(this);
b14. AddActionListener(this);
b15. AddActionListener(this);
b16. AddActionListener(this);
b17. AddActionListener(this);
b18. AddActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
//String cadena = new String();
// String uloper="";
if ((ae.getActionCommand() == "1") || (ae.getActionCommand() == "0") ||
(ae.getActionCommand() == "2") || (ae.getActionCommand() == "3") ||
(ae.getActionCommand() == "4") || (ae.getActionCommand() == "5") ||
(ae.getActionCommand() == "6") || (ae.getActionCommand() == "7")||
(ae.getActionCommand() == "8") || (ae.getActionCommand() == "9"))
{
// num2 = num1;
if (ae.getActionCommand() == "0")
{
if (num1 == 0)
{
t1.setText("");
}
else{
t1.setText("" + t1.getText() + ae.getActionCommand());
num1 = Integer.parseInt(t1.getText());
//cadena = t1.getText();
}
}
else {
t1.setText("" + t1.getText() + ae.getActionCommand());
num1 = Integer.parseInt(t1.getText());
//cadena = t1.getText();
}
//ae.getActionCommand();
}
// fin del mientras
//String operador = "";
if(ae.getActionCommand() == "+"){
punto = 0;
if (num2 != 0)
{
num2 = num2 + num1;
t1.setText("");
//num3 = num2;
num1 = 0;
ultOper = "+";
//cadena = "";
}
else{
//num3 = num2;
num2 = num1;
t1.setText("");
num1 = 0;
ultOper = "+";
}
}
if(ae.getActionCommand() == "-"){
punto = 0;
if (num2 != 0)
{
num2 = num2 - num1;
t1.setText("");
//num3 = num2;
num1 = 0;
ultOper = "-";
//cadena = "";
}
else{
//num3 = num2;
num2 = num1;
t1.setText("");
num1 = 0;
ultOper = "-";
}
//operador =ae.getActionCommand();
}
if(ae.getActionCommand() == "*"){
punto = 0;
if ((num2 != 0)&&(num1 != 0))
{
num2 = num2 * num1;
t1.setText("");
//num3 = num2;
num1 = 0;
ultOper = "*";
//cadena = "";
}
else if(num1 == 0)
{
num2 = num2;
t1.setText("");
ultOper = "*";
}
else{
//num3 = num2;
num2 = num1;
t1.setText("");
num1 = 0;
ultOper = "*";
}
//operador =ae.getActionCommand();
}
if(ae.getActionCommand() == "/"){
punto = 0;
if (num2 != 0)
{
num2 = num2 / num1;
t1.setText("");
//num3 = num2;
num1 = 0;
ultOper = "/";
//cadena = "";
}
else{
//num3 = num2;
num2 = num1;
t1.setText("");
num1 = 0;
ultOper = "/";
}
//operador =ae.getActionCommand();
}
//String uloper2 = uloper;
if(ae.getActionCommand() == "=")
{
punto = 0;
if(ultOper == "+")
{
num3 = Double.parseDouble(t1.getText());
t1.setText("" + (num2 + num3));
num2 = Double.parseDouble(t1.getText());
num1 = 0;
}
if(ultOper == "-")
{
num3 = Double.parseDouble(t1.getText());
t1.setText("" + (num2 - num3));
num2 = Double.parseDouble(t1.getText());
num1=0;
}
if(ultOper == "*")
{
num3 = Double.parseDouble(t1.getText());
t1.setText("" + (num2 * num3));
num2 = Double.parseDouble(t1.getText());
num1 = 0;
}
if(ultOper == "/")
{
num3 = Double.parseDouble(t1.getText());
t1.setText("" + (num2 / num3));
num2 = Double.parseDouble(t1.getText());
num1=0;
}
}
if(ae.getActionCommand() == ".")
{
if (punto == 0){
t1.setText("" + t1.getText()+".");
punto = 1;
}
}
if(ae.getActionCommand() == "CE")
{
punto = 0;
t1.setText("");
num1 = 0;
}
if(ae.getActionCommand() == "C")
{
punto = 0;
t1.setText("");
num1 = 0;
num2 = 0;
num3 = 0;
ultOper = "";
}
// } */
} // fin del metodo actionPerformed
} // fin de la clase

2 Respuestas

Respuesta
1
pues es sencillo, la clase Double tiene un constructor con un parámetro String que te convierte automaticamente ese String en un Double, luego sacas el valo de ese Double y operas con el
Respuesta
1
¿Puede ser porque haces "Integer.parseInt" en lugar de Double? Si intentas convertir un String con punto en doble dará ese error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas