[C con Clase] problemas obteniendo la parte decimal de un numero double
"Antonio Sebastián Sallés M."
asalles.mail en gmail.com
Mie Mar 14 03:04:33 CET 2007
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
>
Más información sobre la lista de distribución Cconclase