Hola amigos, como esta, hoy les vor a enseñar a como sacar la parte decimal a un numero decimal
asi que empezemos

:
Antes que nada quiero aclarar que esto lo hiba a publicar en la web de elhacker.net, pero por algunos problemas tecnicos no pude, pues a la hora de iniciar secion me decia que la contraseña estaba mala y me devolvia y todo eso, al final no lo pude pulicar asi que no publico aqui toda la informacion quie publique aui es de mi autoridad:
Hola, Creo este tema, porque he visto que mucha gente en internet (yo :V ), se pregunta como sacar la parte decimal de un numero.
Y la mayoria publica codigo como este:
[code=cpp]
#include<iostream>
int main()
{
float f = 12.598;
int entero = (int)f;
float decimal = f - entero;
}
[/code]
Ese codigo esta mal, No en sintaxis si no en logica, analicemos este codigo,
segun veo el indica un numero flotante cuyo valor es 12.598 , ok, todo va bien. pero aqui esdonde esta la parte mala, el crea otra variable llamada entero cuyo valor va a ser 12, por que 12? pues por que al escribir
[code=cpp]
int(f);
[/code]
o
[code=cpp]
(int)f;
[/code]
Esta convirtiendo 12.598 en un valor entero osea 12, luego crea otra variable mas llamada decimal cuyo valor va a ser 12 - entero, recordemos que entero tambien es igual a 12, porque como ya dije anter en
[code=cpp]
int(f);
[/code]
o
[code=cpp]
(int)f;
[/code]
lo convierte en un numero entero entonces el valor de decimal va a ser igual a 0,y no 0.598 que es lo que queremos, como se soluciona?
Aqui yo hice una funcion que lo hace como debe ser(codigo es de c++)
Funcion:
[code=cpp]
float p_dec(float num)
{
/*int pe;
float res;
pe=int(num);
res=num-pe;*/
//int Ent;
float Dec,Ent,resul;
Ent = 00.0000;
Dec = 00.0000;
Dec = num;
Ent = int(num);
Ent = Ent + 0000;
resul = Dec - Ent;
return resul;
}
[/code]
Main
[code=cpp]
float num,entero;
num = 11.9258;
entero = p_dec(num);
cout << "La parte decimal de " << num << " es: " << entero << endl;
[/code]
analicemos mi funcion, primerio creo tres variables:
[code=cpp]
float Dec,Ent,resul;
Ent = 00.0000;
Dec = 00.0000;
[/code]
y las inicializo en 0 para limpiarlas(costumbre mia :V), luego la variable Dec va a ser igual a 11.9258 lugo La variable Ent va a tener un valor igual a 11 por que como dije Int "variable" trasforma el numero a entero y luego resul va a ser igual a Ent menos Dec algo asi
Dec --> 11.9258 -
Ent --> 11
---------
resul -->00.9258
el entero se le resta a la parte entera y la parte decimal queda intacta ,luego devuelve resul que vendria siendo 00.9258 que este si es el resultado que deveria dar, bueno eso es todo. Solo un pequeño aporte a la comunidad.
Cabe destacar que, mi funcion no es perfecta, debemos ajustar el numero de 0 a la cantidad que corresponta por que si por ejempro tenemos 131.95731 tendrian que sen tres 0 en ves de 2 por que si lo dejaramos en 2 ceros quedaria asi
131.95731-
00
----------
001.95731
Eso era todo, mi pequeño aporte

espero que les sirva.