½ 小数转分数

将小数转为最简分数(如 0.75 → 3/4)。使用连分数算法保证精度。

小数转分数

关于小数转分数转换器

这个转换器完全在浏览器中运行。输入任意小数,它会返回最接近的最简分数,并显示该分数的确切小数值,方便查看误差(如果有)。算法使用输入的连分数展开,能在每一步给出最佳有理近似。

连分数原理

  • 连分数 —— 任何实数 x 都可写成 x = a₀ + 1/(a₁ + 1/(a₂ + …)),其中每个 aᵢ 都是整数。截断这个展开就能得到分母不超过给定上界的最佳有理近似。
  • 示例:0.75 —— 0.75 = 0 + 1/(1 + 1/(3)),渐近分数为 1/1、3/4。最终 3/4 精确无误。
  • 为何比乘 10ⁿ 更好 —— “乘 10ⁿ”方法对循环小数(如 0.333…)会产生很大的分母。连分数能自然找到 1/3 这样分母较小的近似。
  • 精度限制 —— JavaScript 将小数存为 IEEE-754 双精度浮点,输入本身已被舍入到约 15 位有效数字。转换器尊重这一点,当渐近分数与输入相差小于 1e-12 时停止。

如何使用转换器

  1. 在输入框中输入小数。
  2. 点击转换查看化简后的分数。
  3. 下方一行显示该分数的确切小数值和近似误差。

常见问题

为什么 0.1 转为 1/10,而 0.333… 转为 1/3? 0.1 是有限小数,可精确表示;0.333… 是无限循环小数。连分数算法识别出 0.333 “非常接近 1/3”,返回 1/3。

负数怎么办? 符号保留:−0.75 → −3/4。

如果输入已经是整数? 分数就是 n/1,直接显示该整数。

我的输入会被存储或上传吗? 不会。所有计算都在浏览器中完成,数字永远不会发送到服务器。