[C con Clase] problemas obteniendo la parte decimal de un numero double

Pedro Mateo pedromateoa en gmail.com
Mie Mar 14 14:36:03 CET 2007


Gracias por contestar

se le escapa un detalle...
si quisiera seguir tomando herramientas ya elaboradas y comodas el c++ no
fuera el lenguaje que tomaria para tratar de aprender





El día 13/03/07, "Antonio Sebastián Sallés M." <asalles.mail en gmail.com>
escribió:
>
> Ocupa FLUtil.h y FLUtil.cpp llamando por parámetro a
> partDecimal(double n)
>
>
> http://www.koders.com/cpp/fid043E0803097365816CCE05E27BA83FAE5679D22F.aspx?s=partDecimal
>
> http://www.koders.com/cpp/fid86A1C63CE11F57AB70CCAA9467FB3E99AB04AB7D.aspx?s=partDecimal
>
> Aprende a usar librerías, no reinventes la rueda.
>
>
>
> Saludos
>
> Antonio Sebastián Sallés M.
> UCENTUX / IEEE UCENTRAL
> [cel] (56-8) 281 71 61
> [lab] (56-2) 582 69 31
> Martes, 13 de Marzo de 2007, 22:04:17 hrs.
> http://eiec.ucentral.cl/ucentux/
>
>
>
>
>
> Pedro Mateo escribió:
> > soy nuevo en c++ y vengo de programar en visual foxpro por mas de 10
> anos y no existe otra actividad (NINGUNA!!) que me guste por lo menos un
> poquito de lo que me gusta programar
> >
> > ahora tengo un OBSESION de programar en c++ y no me puedo librar de eso,
> es un reto para mi
> >
> > quiero obtener la parte decimal de un double pero al intentarlo me han
> ocurrido algunas cosas que me despiertan varias interrogantes
> >
> > este programita deberia inprimir 234 en cambio se queda en un loop
> infinito
> > a menos que cambies el 23.234 por 23.2 que en tal caso me devolve 2
> >
> > puedo entender que en el comportamiento de este programa sea diferente
> cuando los numeros son grandes, pero los numeros que estoy utilizando para
> probar no son la gran cosa
> >
> > por otro lado esta el hecho de que los calculos que hasta ahora he
> realizado solo me devuelven 6 decimales lo que es inapropiado para
> determinadas ocaciones en las que se necesita mas presicion
> >
> > se que existen funciones que me pueden ayudar a resolver ese problema,
> pero estoy en c++ porque deseo aprender como funcionan las cosas, en otros
> lenguajes de muchisima menor potencia puedo hacer operaciones como esta sin
> necesidad de utilizar funciones
> >
> > y se que el dominio de la solucion a este tipo de problemas es vital
> para mi desarrollo en c++
> >
> >
> > #include <iostream>
> > using namespace std;
> >
> > main(){
> >       double x=23.234;
> >       int c=int(x);
> >
> >       while(x-int(x)) {x*=10;c*=10;}
> >       cout<<x-c<<endl;
> > }
> >
> > en este programa x-int(x) en todos los casos deberia llegar un punto en
> que sea igual a 0 pero tal no es el caso, si cambias el valor de x obtendras
> resultados solo si el numero tiene un decimal de menos de 3 posiciones
> >
> >
> > alguien podria darme la razon?
> > _______________________________________________
> > 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
> >
>
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070314/147f3660/attachment.html>


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