Как я могу написать алгоритм, который задает число с плавающей запятой и пытается представить его как можно точнее, используя числитель и знаменатель, оба из которых ограничены диапазоном байта Java?
Причина этого в том, что устройству I2C нужны числитель и знаменатель, в то время как имело бы смысл дать ему число с плавающей запятой.
Например, 3.1415926535...
приведет к 245/78
, а не 314/100
или 22/7
.
С точки зрения эффективности, это будет вызываться примерно три раза в начале программы, но после этого не будет. Так что медленный алгоритм — это не слишком плохо.