![]() |
Fracciones en Delphi ¿No se puede?
Hola a todos, lo que quiero es convertir un decimal en una fraccion.
ejemplo: el decimal 0.14 convertirlo a la fraccion 1/7. alguien me ayuda? |
Podrías utilizar los mismos mecanismos que se utilizan "en papel" para convertir un valor una expresión fraccionaria.
Cita:
|
Las he probado despues de responder, y el resultado no fue bueno....
|
0.14 = 14/100
Puedes partir de ahi y despues tratar de encontrar la minima expresión de ese número fraccionario... ten en cuenta que 0.14 asi sin mas decimales no da exactamente 1/7 por lo que la minima expresión de 14/100 no es precisamente 1/7 sino algo así como 7/50 El algoritmo es simple se trata de encontrar el maximo comun divisor de ambos operadores y obtener la división de ambos...aqui mas o menos como lo simplificarias a partir de 2 cajas de edición con el numerador y el denominador:
Saludos |
hay 3 casos para la conversion de numeros decimales a fracciones
para ver como se resuelven los 3 casos entra aqui asi que debes evaluar en cual caso cae el decimal y usar la solucion al respecto |
Gracias a todos por responder.
"delphi.com.ar Las he probado despues de responder, y el resultado no fue bueno....", pienso lo mismo :( lpmlpm, tu respuestas, no la entendi, no veo que es lo que hace, me aclaras un poquito:confused: luisgutierrezb, estoy estudiando la pagina que me diste haber si hago mi propio algoritmo, pero si alguien me ayuda pos mejor, alguna ayudita mas? salu2. |
Ok. a ver ahora un poco más digerido:
Seguro que pudiera optimizarse en varias partes... es una versión preliminar y he sido un poco cobarde al no querer involucrarme demasiado con los diferentes tipos de datos flotantes que hay pero en mi experiencia trabajar de este modo te da mucha tranquilidad y es mejor llevarla tranquila por ese lado... prefiero tratar los flotantes limitados como estos como cadenas para evitar conflictos y respetar al máximo el número real que tu quieres convertir en fracción... Saludos |
Gracias pmlpm, ahora si se entendió, dejame probarlo y te cuento :D
|
La franja horaria es GMT +2. Ahora son las 04:18:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi