Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Perdida de unidades al hacer varias sumas en C++

Estas en el tema de Perdida de unidades al hacer varias sumas en C++ en el foro de C/C++ en Foros del Web. Hola, Ya eh presentado el mismo problema varias veces. El punto es que al ir realizando varias sumas relativamente sencillas pierdo unidades en el resultado. ...
  #1 (permalink)  
Antiguo 27/08/2015, 00:17
 
Fecha de Ingreso: agosto-2015
Mensajes: 3
Antigüedad: 9 años, 2 meses
Puntos: 0
Pregunta Perdida de unidades al hacer varias sumas en C++

Hola,

Ya eh presentado el mismo problema varias veces. El punto es que al ir realizando varias sumas relativamente sencillas pierdo unidades en el resultado. Para esto prepare un código que presenta este caso.

Código:
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
    char Numero_str[100];
    int longitud, i;
    long long Numero_int=0;
    
    cin>>Numero_str;
    longitud=strlen(Numero_str);
    for(i=0;i<longitud;i++)
        Numero_int += (Numero_str[i]-48) * pow(10, longitud - 1 - i );
    cout<<Numero_int;
    
    return 0;
}
El proposito del código es sencillo: Introduces un número y lo guardas en una cadena. Despues con un for conviertes esta cadena en un entero. El código sólo lo hice para representar el problema que tengo. En si, no sé si tenga alguna funcionalidad.

Al introducir el número 123456789 deveria guardar la cadena: [1][2][3][4][5][6][7][8][9]
Despues dentro del ciclo for hace la siguiente suma:
100000000
+20000000
+ 3000000
+ 400000
+ 50000
+ 6000
+ 700
+ 80
+ 9
__________
123456789

pero en lugar de eso obtengo como resultado: 123456787

Alguien podria decirme por favor ¿Qué es lo que estoy haciendo mal? y ¿Cómo solucionar este problema?
Saludos a todos y gracias de antemano.
  #2 (permalink)  
Antiguo 27/08/2015, 00:46
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Perdida de unidades al hacer varias sumas en C++

A mi el resultado me sale correcto y las operaciones parecen igualmente correctas.

Qué compilador usas? Qué versión?
  #3 (permalink)  
Antiguo 27/08/2015, 03:44
Avatar de jc_moj  
Fecha de Ingreso: septiembre-2009
Ubicación: Andalucía
Mensajes: 137
Antigüedad: 15 años, 2 meses
Puntos: 12
Respuesta: Perdida de unidades al hacer varias sumas en C++

Hola

A mi también me sale correcto, he probado con W7 y el compilador:
gcc version 4.9.2 (i686-posix-dwarf-rev1, Built by MinGW-W64 project)

Un saludo
  #4 (permalink)  
Antiguo 27/08/2015, 03:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Perdida de unidades al hacer varias sumas en C++

Igual el código que has hecho para recrear el error no se ajusta exactamente al que sí te lo produce, porque a mi también me va bien.
__________________
Mi calculadora en Qt
  #5 (permalink)  
Antiguo 27/08/2015, 10:38
 
Fecha de Ingreso: agosto-2015
Mensajes: 3
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Perdida de unidades al hacer varias sumas en C++

Solo sé que es el GNU GCC Compiler que venia por default al instalar CodeBlocks pero no sé que version es. Uso W7 de 32 bits.

Utilize un compilador en linea (GNU GCC v4.8.3) y me da un resultado correcto pero al correrlo en mi PC el error continua. Supongo que debe de ser el compilador, intentare cambiarlo y ver si eso soluciona mi problema. Muchas gracias (:
  #6 (permalink)  
Antiguo 29/08/2015, 22:02
 
Fecha de Ingreso: agosto-2015
Mensajes: 3
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Perdida de unidades al hacer varias sumas en C++

Hola, en efecto el problema era el compiador. Instale uno diferente al que tenia y funciona perfectamente. Gracias por la ayuda

Etiquetas: cadena, char, funcion, int, perdida, string, sumas
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 18:40.