我正在搜索如何将浮点数转换为最简单的分数,然后再转换回它,并找到了这个答案。
问题是,给出的 Python 实现依赖于as_integer_ratiopython 标准库中的工具,而 Rust 中不存在该工具。我在评论中询问了这一点并发现了这一点,f64::frexp但我不确定我是否理解它是如何工作的,因为它的文档非常神秘(至少对我来说):
将数字分解为标准化分数和以 2 为底的指数,满足:
self = x * 2^exp
0.5 <= abs(x) < 1.0
最重要的是,它是一个不稳定的功能。
我应该怎么办?