如何将浮点数转换为由字节分子和分母表示的最接近的分数?

如何编写给出浮点数的算法,并尝试使用分子和分母(均限于Java字节范围)来尽可能准确地表示?

原因是I2C设备需要分子和分母,而使其具有浮点数却很有意义。

例如,3.1415926535...将导致245/78,而不是314/10022/7

就效率而言,在程序开始时大约要调用3次,但之后完全没有调用。所以,一个缓慢的算法不是 糟糕。

回答:

我已经编写了一些代码(甚至使用Java)来完成您所要求的事情。就我而言,我需要显示一个比例因子,既是百分比又是比率。最熟悉的示例是您在图像编辑器(如GIMP)中看到的缩放对话框。

您可以在从1161行开始的updateRatio()方法中在这里找到我的代码。只要LGPL许可证适用于您,就可以简单地使用它。我所做的工作基本上遵循了GIMP中所做的事情-

这是其中只有一种有效,明智的方法可以做到的事情之一。

以上是 如何将浮点数转换为由字节分子和分母表示的最接近的分数? 的全部内容, 来源链接: utcz.com/qa/407473.html

回到顶部