¿Cómo puedo convertir un número de coma flotante en la fracción más cercana representada por un numerador y denominador de bytes?

¿Cómo puedo escribir un algoritmo que, dado un número de punto flotante, y los intentos de representación sea lo más preciso posible utilizando un numerador y un denominador, ambos restringidos al rango de un byte de Java?

La razón de esto es que un dispositivo I2C quiere un numerador y denominador, mientras que tendría sentido darle un flotador.

Por ejemplo,3.1415926535... resultaría en245/78, más bien que314/100 o22/7.

En términos de eficiencia, esto se llamaría alrededor de tres veces al inicio del programa, pero después de eso, no. Así que un algoritmo lento no estambién malo.

Respuestas a la pregunta(6)

Su respuesta a la pregunta