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

Java error en calculos

Estas en el tema de Java error en calculos en el foro de Java en Foros del Web. String = "12"; 2X2=4 1X3=3 Suma=7 El resultado final debe ser 7, pero me da otra cosa: 101 148 lo cual esta mal pero logro ...
  #1 (permalink)  
Antiguo 11/04/2010, 01:43
 
Fecha de Ingreso: marzo-2010
Mensajes: 432
Antigüedad: 14 años, 8 meses
Puntos: 11
Java error en calculos

String = "12";

2X2=4
1X3=3

Suma=7

El resultado final debe ser 7, pero me da otra cosa:

101
148

lo cual esta mal pero logro el orden en el cuble de

2X2=
1X3=

pero no me multiplica ni en el orden que lo hago manualmente.

Código Java:
Ver original
  1. public class prueba {
  2.  
  3.     public static void main(String[] args) {
  4.         String str="12";   
  5.    
  6.         int largo=str.length();
  7.                
  8.         int suma = 0;
  9.         int mul  = 2;  
  10.  
  11.         for (int i= largo -1 ; i >= 0; i--)
  12.         {  
  13.             //System.out.println(str.charAt(i) + " " + mul);
  14.             int a = str.charAt(i);         
  15.             suma = a * mul;    
  16.            
  17.            
  18.             mul++; 
  19.             System.out.println(suma);
  20.         }  
  21.         //System.out.println(suma);
  22.                
  23.         }  
  24. }

Me da este resultado:
101
148
  #2 (permalink)  
Antiguo 11/04/2010, 10:17
aguirremanuel
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Java error en calculos

Bueno mi pana el problema estaba aqui :

Código C++:
Ver original
  1. int a = str.charAt(i);

Estas guardando en la variable 'a' el valor de uno de los caracteres de la variable 'str', en el primer caso estas guardando el char '2' y el equivalente en entero para el '2' es el numero 50, eso tiene que ver con los codigos ASCCII.

Luego lo que multiplicaso no es el 2 * 2, si no, 50 * 2, que a mi me daba 100, a ti no se porque te da 101...

La solucion es convertir ese caracter de tipo char a un entero, esto lo hice asi :

Código C++:
Ver original
  1. int a = Integer.parseInt(String.valueOf(str.charAt(i)));

primero convierto el caracter tipo char a un string con la sentencia "String.valueOf(str.charAt(i))", luego convierto el string resultante a entero con la sentencia "Integer.parseInt".

Suerte y Saludos...!!!

Etiquetas: calculo
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 08:12.