elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Perdida de unidades al hacer varias sumas en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Perdida de unidades al hacer varias sumas en C++  (Leído 1,616 veces)
Lopex

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Perdida de unidades al hacer varias sumas en C++
« en: 27 Agosto 2015, 08:22 am »

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 deberia 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.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Perdida de unidades al hacer varias sumas en C++
« Respuesta #1 en: 27 Agosto 2015, 08:33 am »

ejecuto tu código sin problemas, ando en linux y me da perfecto, no parece tener errores a primera vista, como lo estás compilando y ejecutando?


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Lopex

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Perdida de unidades al hacer varias sumas en C++
« Respuesta #2 en: 27 Agosto 2015, 18:51 pm »

Al parecer es un problema con mi compilador, porque lo ejecute en un compilador en linea (GNU GCC v4.8.3) y me dio un resultado correcto pero al correrlo en mi PC me da un resultado erroneo. Solo sé que tengo instalado el GNU GCC Compiler que venia por default al instalar CodeBlocks, trabajo en W7 a 32bits. Intentare cambiarlo y ver que sucede, espero y eso resuelva mi problema. Gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines