Título: [Súper solucionado] Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: NOB2014 en 4 Enero 2016, 02:10 am Hola a todos.
Bueno como el enunciado lo dice es lo que quiero hacer, lo que pasa es que la parte fraccionaria no sale limpia como yo deseo, o sea, el programa que expongo a continuación la parte fraccionaria da como resultado 0.345000 y lo que necesito es 345000 a secas sin el cero y el punto, hay alguna manera de lograrlo.- #include <stdio.h> #include <windows.h> int main(void){ float numero = 12.345; int parte_entera; double parte_decimal; parte_entera = numero/1; parte_decimal = numero-parte_entera; system( "cls" ); printf( "\n La parte entera %d", parte_entera ); printf( "\n La parte decimal %f", parte_decimal ); return 0; } Desde ya muchas gracia y un abrazo. Daniel Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: 0xFer en 4 Enero 2016, 03:24 am Multiplicalo por 1000
Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: NOB2014 en 4 Enero 2016, 03:54 am Hola 0xFer.
Gracias por ocuparte, lo que vos propones daría 12345 y lo que necesito es: entero = 12 fraccion = 345 Ya encontré una manera solo que no descubro cuál es la condición para finalizar el while, no voy a saber si la parte fraccionaria tiene 1,2,3,10 dígitos.- while( a <= 2){ parte_decimal *=10; a++; } Saludos. Daniel Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: engel lex en 4 Enero 2016, 04:23 am usa etiquetas GeSHi al publicar código
espero se entienda(y funcione) Código
Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: MAFUS en 4 Enero 2016, 09:55 am Hazlo a mano, sobre un papel y apunta los pasos que vas haciendo.
Después solo tienes que traducirlo a C. Ten en cuenta varias cosas: Que ocurre si el numero original es entero Que ocurre si el tiene infinitos decimales. Por otra parte, si no es un ejercicio y necesitas esa funcionalidad para un programa mas grande, piensa que ya existe esta función en la librería estándar de C. Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: kondrag_X1 en 4 Enero 2016, 11:13 am y porque no utilizas %n.mf para decir el numero de decimales que quieres?
por ejemplo printf("%n.mf",numero); n -> indica la cantidad de números por delante de la coma m -> la cantidad de números por detrás de la coma. así tu número 12,123 printf("parte entera : %4.0f",numero); 12 printf("parte decimal : %0.4f",numero); 123 Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: user-marcos en 4 Enero 2016, 11:51 am Código
Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: NOB2014 en 4 Enero 2016, 13:22 pm Hola.
Tengo consultas para los 4, pero no las voy a poner todas juntas, solo que el código de user-marcos me da correcto como debe ser la parte entera pero la parte fraccionaria da como resultado: 0.598000. Lo que necesito es que dé: 598 sin cero a la izquierda ni el punto o sea un número entero.- Código: #include <stdio.h> engel lex te dejo el código como yo lo interprete, la lógica es la correcta, pero no sé qué pasa el resultado de la parte fraccionaria no es la esperada:12300015.000000, voy a hacer algunas prácticas para intentar que de el resultado que yo necesito.- Código: #include <stdio.h> Por el momento es todo, luego les hago la consulta a los otros 2 foristas.- Me es imposible utilizar las etiquetas GeSHi, no sé que pasa.- Saludos. Daniel Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: user-marcos en 4 Enero 2016, 13:27 pm Lo que he puesto antes estaba incompleto.
Código
Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: MAFUS en 4 Enero 2016, 17:57 pm A ver, ¿qué tal así?
Código
Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: Noob_boy en 4 Enero 2016, 18:07 pm yo lo que haría seria hacer el logaritmo en base 10 en entero del numero con sus decimales y así obtendría la parte entera, luego se la restas al numero original y obtienes la parte fraccionaria.
mira yo lo utilice para obtener el reverso de un numero Código
edito: He probado ha hacerlo y he visto una manera más simple de hacerlo Código creo que era eso lo que se buscaba Título: Re: Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: NOB2014 en 4 Enero 2016, 20:47 pm Hola, gente.
MAFUS, gracias por ocuparte, el ejemplo de user-marcos funciona a la perfección y es en parte lo que proponías, en cuanto a hacerlo en un papel ya lo hice y lo quiero aplicar al código de engel lex pero todavía no lo logro. Citar Qué ocurre si el número original es entero, ya lo probé y da como parte fraccionaria:cero(correcto) Citar Que ocurre si tiene infinitos decimales me parece que esto se soluciona con: #define NUMERO_DECIMALES 4.-Por último, decirte que voy a probar el código que posteaste se lo ve interesante.- Noob_boy, me gustaría que postearas algún ejemplo de lo que propones, te imaginaras que con 63 años ya no me acuerdo de logaritmo, desde ya muchas gracias.- Saludos. Daniel Título: Re: [Súper solucionado] Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: geeke en 4 Enero 2016, 22:11 pm Tambien dispones de modf incluida en math.h la cual hace justo lo que buscas:
Código
Saludos Título: Re: [Súper solucionado] Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: engel lex en 5 Enero 2016, 01:06 am llegué tarde XD pero venia a decir que tal vez mi código falla por cosas de la precisión de la variable flotante
Título: Re: [Súper solucionado] Separar parte decimal y parte fraccionaria en lenguaje C. Publicado por: NOB2014 en 5 Enero 2016, 18:10 pm Hola.
Código
Saludos. Daniel |