½ 小数→分数
小数を最簡分数に変換(例: 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 以内で一致したら停止します。
変換ツールの使い方
- 入力欄に小数を入力します。
- 変換をクリックして簡約された分数を表示します。
- 下の行にその分数の正確な小数値と近似誤差が表示されます。
よくある質問
なぜ 0.1 は 1/10 に、0.333… は 1/3 になるのですか? 0.1 は有限小数で正確に表せますが、0.333… は無限です。連分数アルゴリズムは 0.333 を「1/3 に非常に近い」と認識し 1/3 を返します。
負の数は? 符号は保持されます:−0.75 → −3/4。
入力がすでに整数の場合は? 分数は n/1 で、整数として表示されます。
入力は保存・アップロードされますか? いいえ。すべての計算はブラウザ内で行われ、数値がサーバーに送信されることはありません。