[C con Clase] Pregunta sobre con Float

rodolfo rosso paz rodolforossopaz en hotmail.com
Jue Sep 20 23:21:59 CEST 2007


Hola Cristhian,

La solución que te envió 00z, esta perfecta, solo olvidó colocar que al 
final la mantisa la multipliques por 100, pero supongo que fué porque era 
obvio que lo supondrías.

Pero el motivo de mi e-mail, es otro, y es que hace un tiempo estaba 
tratando de hacer lo que tú,, y me surgió un problema con los decimales de 
los numeros flotantes.   Según la respuesta que me dió Salvador los 
decimales no son tan precisos como se espera.  Me hubiera gustado enviarte 
su mismo correo, pero a pesar de saber que lo tengo guardado en alguna 
parte, no he podido encontrarlo.  Sin embargo, te envío este programita que 
hice a partir de ese correo, córrelo y podrás comprobar que los decimales no 
siempre son lo que se espera de ellos, asi que ten cuidado al manipularlos.



#include <iostream>
using namespace std;

#include <iomanip>
using std::setw;
using std::setprecision;

int main()
{
    double arregloDobles[] = {1.1, 2.2, 3.3, 4.4, 5.5};
    cout << setprecision(16) << fixed;
    cout << "   arregloDobles[]    Resta        doble         entero" << 
endl;

    for (int i = 0; i<5 ; i++)
    {
        int resta = i+1;
        cout << setw(20) << arregloDobles[i] << setw(6) << resta;
        double doble = (arregloDobles[i]-resta)*10;
        cout << setw(20) << doble;
        int entero  = int(doble);
        cout << setw(7) << entero << endl;
    }
    system("PAUSE");
    return 0;
}


Como verás, al efectuar la corrida de este programa el número 3.3 se ha 
convertido misteriosamente en 3.2999999999999998,  y al quitarle el entero 
me queda .299999999999998 y no .3 como yo esperaba.

Buehhh, solo quería ponerte sobre aviso, espero te sirva

Rodolfo




>From: CRISTHIAN ANGARITA <thiancriss85 en hotmail.com>
>Reply-To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>To: C Con CLase <cconclase-bounces en listas.conclase.net>, 
>C++<cconclase en listas.conclase.net>
>Subject: [C con Clase] Pregunta sobre con Float
>Date: Wed, 19 Sep 2007 14:35:20 -0500
>
>Buenas tardes a todo,
>
>
>Bueno tengo una pregunta, hay la posibilidad de que en un numero con 
>decimales como (1.25) pueda utilizar solo el (25), ose solo manejar los 
>decimales y sacar a un lado el entero.
>
>
>
>
>
>
>Cristhian Angarita.
>http://cm85.spaces.live.com/
>http://cm85.spaces.live.com/blog/cns!9AECE6BFD5898DE4!271.entry
>_________________________________________________________________
>Connect to the next generation of MSN Messenger 
>http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline


>_______________________________________________
>Lista de correo Cconclase Cconclase en listas.conclase.net
>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

_________________________________________________________________
MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/





Más información sobre la lista de distribución Cconclase