En lugar de convertir un decimal arbitrario en una fracción exacta (algo así como 323527/4362363), trato de convertirlo en algo común fácilmente discernible (en términos humanos) legibilidad) cantidades como 1/2, 1/4, 1/8, etc.Algoritmo optimizado para convertir un decimal en una fracción "bonita"
Además de usar una serie de comparaciones if-then, menos que/igual a etc., ¿hay técnicas más optimizadas para hacer esto?
Editar: En mi caso particular, las estimaciones son aceptables. La idea es que 0,251243 ~ 0,25 = 1/4 - en mi caso de uso, eso es "lo suficientemente bueno", siendo este último más preferible para la legibilidad humana en términos de un indicador rápido (no se utiliza para el cálculo, solo se usa como números de visualización).
Su pregunta es vaga. ¿Cómo defines la legibilidad humana? Y más importante aún, ¿qué pasa si no hay una forma equivalente legible para humanos? ¿Permites aproximaciones? Personalmente, no veo ninguna manera fácil de escribir su ejemplo, 323526/4362363, en forma legible para humanos sin recurrir a la aproximación. –
Aproximaciones son aceptables - La precisión decimal de 4 dígitos es más que suficiente – ina
Sin embargo, hay algo más "legible por humanos", que simplemente la longitud de cualquiera de los números. En general, las fracciones de la forma "1/x" son * fáciles * pero "4/85" es simplemente extraño y se expresaría mejor como "1/41". Por supuesto, la familia "1/x" solo funciona bien para números menores a 0.5, y aproximarse a 0.4 significa una gran pérdida ... ¿tal vez una representación porcentual sería adecuada? –