这个计算器能做什么
虽然名字里带着"取整",但这其实是一款小数转分数计算器。你只需输入一个小数,它就会把这个数值换算成最接近的分数,并自动约分为最简形式。无论是 0.625 还是 0.4 这种不太顺手的小数,都能一键变成干净利落的分数,方便用于食谱、测量、木工或者数学作业。
只需填写一个数据
- 小数——输入任意小数值(例如 0.75、0.333 或 2.5)。如果填入的不是有效数字,系统会按 0 处理。
计算原理
计算器会从 1 到 1000 依次尝试每一个分母,寻找最匹配的分数。对每个分母,它先把 小数 × 分母 四舍五入到最接近的整数,得到一个候选分子,再计算它与原始数值之间的误差。
$$\text{Fraction} = \frac{n}{d} = \frac{\text{Decimal} \times d}{d}, \quad \text{simplified by } \gcd(n, d)$$
$$\begin{gathered} \text{Fraction} = \frac{n}{d} = \frac{n / \gcd(n,d)}{\,d / \gcd(n,d)\,} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d &= \text{denominator}, \; 1 \le d \le 1000 \\ n &= \operatorname{round}\!\left(\text{Decimal} \times d\right) \\ &\quad \text{first } d \text{ with } \left|\text{Decimal} - \tfrac{n}{d}\right| < 10^{-6} \end{aligned} \right. \end{gathered}$$
- 如果误差小于 \(0.000001\),就直接把这个分数当作精确匹配采纳。
- 否则,它会保留所有分母中误差最小的那个分数。
得到分子和分母后,计算器用欧几里得算法求出两者的最大公约数(GCD),再将分子分母同时除以它,结果就是最简分数。它还会标记出结果是否为整数(分母为 1),以及是否真的进行了约分。
实例演示
输入 0.625。在逐一测试分母时,计算器发现 \(0.625 \times 8 = 5\) 正好整除,得到分数 \(5/8\),误差几乎为零。5 和 8 的最大公约数是 1,因此这个分数已经是最简形式,结果为 5/8。
再试试 0.5。最先匹配到的是 \(1/2\),最大公约数为 1,结果就是清爽的 1/2。输入 0.4 则得到 \(2/5\),因为把 \(4/10\) 约分后正好等于 0.4。
常见问题
为什么分母最多只到 1000? 把搜索范围限制在 1000 以内,是为了让结果既简洁又快速。对于 0.333 这类无限循环小数,它会返回非常接近的 \(1/3\),而不是一个又长又难看的分数。
输入大于 1 的数会怎样? 同样可以处理。输入 2.5 会得到 \(5/2\),这是一个假分数。工具不会自动把它拆成带分数(如 2½)。
结果一定是最简分数吗? 是的。每个结果都会除以它的最大公约数,所以你拿到的始终是最简形式的分数。