Comment puis-je écrire un algorithme qui a donné un nombre à virgule flottante, et tente de représenter est aussi précisément que possible en utilisant un numérateur et un dénominateur, tous deux limités à la plage d'un octet Java?Comment puis-je transformer un nombre à virgule flottante en la fraction la plus proche représentée par un numérateur et un dénominateur d'octets?
La raison en est qu'un périphérique I2C veut un numérateur et un dénominateur, alors qu'il serait logique de lui donner un flottant.
Par exemple, 3.1415926535...
entraînerait 245/78
, plutôt que 314/100
ou 22/7
. En termes d'efficacité, cela serait appelé environ trois fois au début du programme, mais pas du tout. Donc un algorithme lent n'est pas trop mauvais.
245/78 est une meilleure approximation de PI avec un numérateur et un dénominateur de taille octet. – pavium
Oups. Bon point. – Eric
Notez que les octets Java sont signés, donc 245 n'est pas une valeur d'octet dans Java. – starblue