¿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.