Foros del Web » Programación para mayores de 30 ;) » Java »

Calculadora en java problema...

Estas en el tema de Calculadora en java problema... en el foro de Java en Foros del Web. Hola amigos... de nuevo yo.... resulta que andaba probando en java y tengo este codigo que desarrolle para una calculadora... lo que hace basicamente el ...
  #1 (permalink)  
Antiguo 14/12/2011, 11:29
 
Fecha de Ingreso: octubre-2010
Mensajes: 43
Antigüedad: 13 años, 7 meses
Puntos: 3
Pregunta Calculadora en java problema...

Hola amigos... de nuevo yo.... resulta que andaba probando en java y tengo este codigo que desarrolle para una calculadora...

lo que hace basicamente el codigo es obtener un string como 2+2 y procesarlo para obtener los numeros y sumarlos....

Código Javascript:
Ver original
  1. String linea = texto.getText();
  2.             int numa = Integer.parseInt(linea.substring(0,linea.indexOf("+")));
  3.             int numb = Integer.parseInt(linea.substring(linea.indexOf("+")+0,linea.length()));
  4.             int total = numa+numb;
  5.             etiqueta.setText(String.valueOf(total));

asi para sumar me funciona perfecto pero cuando trato de hacer una resta me suma en lugar de restar miren...

Código Javascript:
Ver original
  1. String linea = texto.getText();
  2.             int numa = Integer.parseInt(linea.substring(0,linea.indexOf("-")));
  3.             int numb = Integer.parseInt(linea.substring(linea.indexOf("-")+0,linea.length()));
  4.             int total = numa-numb;
  5.             etiqueta.setText(String.valueOf(total));

si resto 5-2 me da como resultado 7 por que?

espero me puedan guiar....

Última edición por lupita100; 14/12/2011 a las 12:52
  #2 (permalink)  
Antiguo 14/12/2011, 13:10
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Respuesta: Calculadora en java problema...

Porque en realidad la operacion que estas haciendo es 5 - (-2)

Al obtener el segundo operando (numb), con la funcion substring estas extrayendo desde el signo menos hasta el final de la cadena. En la funcion para obtener numb de la resta, tienes linea.indexOf("-")+0 cuando deberia ser +1
  #3 (permalink)  
Antiguo 14/12/2011, 13:41
 
Fecha de Ingreso: abril-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 4
Respuesta: Calculadora en java problema...

Hola:

El problema lo tienes al recoger el numb. Cuando haces:
numb=Integer.parseInt(linea.substring(linea.indexO f("+")+0,linea.length()));
Arrastras el signo, por lo que en un caso numb es +2 y en el otro numb es -2.
Al sumar o restar:
2++2=4
2--2=4
Debes recoger numb como:
numb=Integer.parseInt(linea.substring(linea.indexO f("+")+1,linea.length()));

Suerte.

Etiquetas: calculadora, operadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:55.