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