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

Asignación variable de tipos en Java

Estas en el tema de Asignación variable de tipos en Java en el foro de Java en Foros del Web. Buenas noches, tengo un problema con el que quisiera que me ayudaran. Estoy haciendo un programita en Java es una calculadora y me encuentro ahora ...
  #1 (permalink)  
Antiguo 27/09/2012, 23:38
 
Fecha de Ingreso: febrero-2010
Ubicación: Medellín
Mensajes: 20
Antigüedad: 14 años, 9 meses
Puntos: 1
Asignación variable de tipos en Java

Buenas noches, tengo un problema con el que quisiera que me ayudaran.

Estoy haciendo un programita en Java es una calculadora y me encuentro ahora con un gran problema, la idea es que el usuario pueda ingresar enteros, decimales o enteros grandes pero como Java tiene una asignación de tipos tan fuerte a cada rato me sale un error, por ejemplo cuando tomo el String del EditText y éste no tiene punto pero le estoy haciendo una conversion de String a Decimal me saca un error, tambien si tiene un punto y lo convierto a Integer me saca un error y lo mismo si el numero es mayor que 2,147,483,647 me saca un error al convertiro a integer.

Y la idea es que el usuario pueda operar entre tipos como sumarle un entero a un decimal (2 + 0.5) y cosas así

Como se haría eso en Java?

Muchas gracias.
  #2 (permalink)  
Antiguo 28/09/2012, 01:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Asignación variable de tipos en Java

Hola:

Si tu calculadora muestra el número sin separadores de miles y con punto decimal tal que 1000.23 , una forma rápida es coger el String y usar Double.parseDouble(string), te devolverá siempre un double y para hacer cuentas vale.

Si en tu calculadora el texto va con separadores de miles y los decimales al estilo español tal que 1.000,23 , tendrás que usar la clase DecimalFormat http://docs.oracle.com/javase/6/docs...malFormat.html o bien arreglar el String antes de intentar convertilo a double con la clase Double.

string = string.replaceAll("\\.",""); //Elimina los puntos de mil
string = string.replaceAll(",", "."); // Cambia la , decimal por .

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 28/09/2012, 09:50
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 12 años, 6 meses
Puntos: 19
Respuesta: Asignación variable de tipos en Java

Como recomendación adicional yo te diría que no usaras un double para realizar cálculos, debido a que la precisión en este número se pierde fácilmente cuando de operaciones con punto flotante se trata y dado que una calculadora debe tener mucha precisión pues no es una buena opción.
Usa BigDecimal o una de sus clases similares, respetan sin hacer redondeos la mayoría de las veces.

Saludos.
  #4 (permalink)  
Antiguo 28/09/2012, 13:53
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 7 meses
Puntos: 69
Respuesta: Asignación variable de tipos en Java

Además si te quieres ajustar a "cálculos estandarizados" para que no varíe el resultado de una máquina otra, entonces usa en los métodos de calculo (o clases) el strictfp...
__________________
De nada, hay te encargo +1...

Etiquetas: string, variables, tipo
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 22:58.