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.
Code: Select all
#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;
}
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.