Dev - C++ - Perdida de unidades al hacer varias sumas en C++

 
Vista:
Imágen de perfil de Irvin René

Perdida de unidades al hacer varias sumas en C++

Publicado por Irvin René (2 intervenciones) el 27/08/2015 08:31:27
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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Christian Polo

Perdida de unidades al hacer varias sumas en C++

Publicado por Christian Polo (2 intervenciones) el 28/08/2015 17:37:48
Si das un valor a tu variable "Numero_str"
quiza tu error se pueda corregir...
Tu codigo es complicado para un ejemplo como ese.
Slds.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Irvin René

Perdida de unidades al hacer varias sumas en C++

Publicado por Irvin René (2 intervenciones) el 30/08/2015 05:53:52
El error estaba en el compilador que estoy usando. Cambie de compilador y el error desaparecio, la verdad no se que version de compilador tenia, era el que viene por default con codeblocks. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar