½ 小数→分数

小数を最簡分数に変換(例: 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 で、整数として表示されます。

入力は保存・アップロードされますか? いいえ。すべての計算はブラウザ内で行われ、数値がサーバーに送信されることはありません。