algorithm - 将小数转换为 "pretty"分数的优化算法

标签 algorithm decimal readability fractions

我没有将任意小数转换为精确分数(例如 323527/4362363),而是尝试将其转换为常见的易于识别(就人类可读性而言)的数量,例如 1/2、1/4、 1/8 等

除了使用一系列 if-then、小于/等于等比较之外,是否有更优化的技术来执行此操作?

编辑:在我的特殊情况下,近似值是可以接受的。这个想法是 0.251243 ~ 0.25 = 1/4 - 在我的用例中,这“足够好”,后者在快速指示器方面更适合人类可读性(不用于计算,仅用作显示数字)。

最佳答案

查找“连分数近似”。维基百科在其“连分数”一文中有基本的介绍,但是有优化的算法在生成分数的同时生成近似值。

然后选择一些停止启发式方法,将分母的大小和近似的接近程度结合起来,以备不时之需。

关于algorithm - 将小数转换为 "pretty"分数的优化算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4676481/

相关文章:

php - 将 PHP 浮点/十进制值插入 MySQL

python - 小数精度的分数

kotlin - 我可以使用 kotlin "also"函数来缩短代码吗?

c++ - 直接访问成员变量还是作为参数传递?

bash - 脚本错误: value too great for base (error token is "09")

java - Java 中多个 'proxy' 方法的替代方法

python - 使用 python 在大型 .txt 中进行二进制搜索(按哈希排序)

algorithm - 如何知道 Big O 何时是对数的?

algorithm - 内存管理算法用在哪里?

algorithm - 图中唯一顶点权重的最大总和