パーセントから分数への計算機
パーセントを分数にするとは、100を分母にして書き、最も簡単な形に約分することです。このページでは、どんなパーセントでもその方法を示します。パーセントから分数への早見表、小数のパーセント、100を超えるパーセントの帯分数、公式も扱います。
例の値が入力されています。ご自身の値に置き換えてください。
分数
3/8
計算過程
- 37.5% = 375/1000
- 375と1000の最大公約数は125です。両方を125で割ります: 3/8
- 小数
- 0.375
レシピに小麦粉の37.5%とあり、ワークシートは分数での答えを求めています。パーセントを100を分母にして書き、約分します。37.5 ÷ 100は375/1000となり、約分すると3/8です。
パーセント(小数や100を超える値も含みます)を入力すると、このパーセントから分数への計算機が、約分した分数、帯分数、計算過程を返します。
パーセントから分数への変換の仕組み
結論:パーセントを100を分母にして書き、分子と分母をその最大公約数で割ります。40%は40/100で、約分すると2/5になります。
パーセントを分数に変換する手順
パーセントから分数への変換は、四つの手順で行います。
- %記号を外し、その数を100を分母にして書きます。
- 数に小数があれば、小数の桁数ごとに分子と分母に10を掛けて、どちらも整数にします。
- 分子と分母をその最大公約数で割って、約分します。
- 分子が分母より大きい場合は、結果を帯分数で書きます。
p% = p / 100p = a / 10^k => p% = a / (100 × 10^k)ここで、aは小数点を取り除いた数、kは小数点以下の桁数です。
最大公約数での約分
最大公約数(GCD)は、両方の数を割り切れる最大の整数です。40/100では20なので、40/100 = 2/5 です。ユークリッドの互除法で求められます。100 mod 40 = 20、次に 40 mod 20 = 0 なので、最大公約数は20です。最大公約数が1になれば、分数は最も簡単な形です。
100%を超えるパーセントと帯分数
100を超えるパーセントでは、分子が分母より大きくなります。125%は 125/100 = 5/4 で、これは仮分数であり、帯分数では 1 1/4 です。分子を分母で割って整数部分を求め、余りを分母の上に残します。
パーセントから分数への例題
例題1:40%
条件
手順 1
40/100と書きます。手順 2
最大公約数は20なので、40/100 = 2/5です。
答え
例題2:62.5%、小数のパーセント
条件
手順 1
62.5/100と書きます。手順 2
小数点以下は一桁なので、分子と分母に10を掛けて625/1000にします。手順 3
最大公約数は125なので、625/1000 = 5/8です。
答え
例題3:125%、100超
条件
手順 1
125/100と書き、約分すると5/4、帯分数では1 1/4です。
答え
例題4:0.5%、1未満
条件
手順 1
0.5/100と書き、これは5/1000で、約分すると1/200です。
答え
パーセントから分数への早見表
このパーセントから分数への早見表には、よく使うパーセントを最も簡単な形の分数で載せています。帯分数のパーセントも正確で、33 1/3%は1/3ですが、33.33%はそうではありません。
| パーセント | 最も簡単な形の分数 |
|---|---|
| 1% | 1/100 |
| 2% | 1/50 |
| 4% | 1/25 |
| 5% | 1/20 |
| 6.25% | 1/16 |
| 8% | 2/25 |
| 8 1/3% | 1/12 |
| 10% | 1/10 |
| 12.5% | 1/8 |
| 15% | 3/20 |
| 16 2/3% | 1/6 |
| 20% | 1/5 |
| 25% | 1/4 |
| 30% | 3/10 |
| 33 1/3% | 1/3 |
| 35% | 7/20 |
| 37.5% | 3/8 |
| 40% | 2/5 |
| 45% | 9/20 |
| 50% | 1/2 |
| 60% | 3/5 |
| 62.5% | 5/8 |
| 65% | 13/20 |
| 66 2/3% | 2/3 |
| 70% | 7/10 |
| 75% | 3/4 |
| 80% | 4/5 |
| 85% | 17/20 |
| 87.5% | 7/8 |
| 90% | 9/10 |
| 95% | 19/20 |
| 100% | 1 |
パーセントから分数へのコード
どちらのバージョンも、上の例(2/5、5/8、5/4または1 1/4、1/200)と早見表を返します。浮動小数点ではなく正確な整数で計算し、末尾の%記号を受け付け、数値以外の入力を拒否します。
JavaScript
export function cleanPercent(raw) { let s = String(raw).trim().replace(/%$/, "").trim(); if (/^[+-]?[1-9]\d{0,2}(,\d{3})+(\.\d+)?$/.test(s)) s = s.replace(/,/g, ""); else if (/^[+-]?\d*,\d+$/.test(s)) s = s.replace(",", "."); return /^[+-]?(\d+\.?\d*|\.\d+)$/.test(s) ? s : null;}function gcd(a, b) { while (b) [a, b] = [b, a % b]; return a;}export function percentToFraction(raw) { const s = cleanPercent(raw); if (s === null) throw new TypeError("percent must be a number"); const negative = s.startsWith("-"); const [intPart, fracPart = ""] = s.replace(/^[+-]/, "").split("."); if (fracPart.length > 10) throw new RangeError("use at most 10 decimal places"); let n = BigInt((intPart || "0") + fracPart); let d = 100n * 10n ** BigInt(fracPart.length); const g = gcd(n, d) || 1n; n /= g; d /= g; const whole = n / d; const rest = n % d; const sign = negative && n !== 0n ? "-" : ""; const fraction = `${sign}${n}/${d}`; const mixed = whole > 0n && rest > 0n ? `${sign}${whole} ${rest}/${d}` : null; return { numerator: negative ? -n : n, denominator: d, fraction, mixed };}Python
import refrom decimal import Decimalfrom fractions import Fractiondef clean_percent(raw): s = re.sub(r"%$", "", str(raw).strip()).strip() if re.fullmatch(r"[+-]?[1-9]\d{0,2}(,\d{3})+(\.\d+)?", s): s = s.replace(",", "") elif re.fullmatch(r"[+-]?\d*,\d+", s): s = s.replace(",", ".") return s if re.fullmatch(r"[+-]?(\d+\.?\d*|\.\d+)", s) else Nonedef percent_to_fraction(raw): s = clean_percent(raw) if s is None: raise ValueError("percent must be a number") if len(s.partition(".")[2]) > 10: raise ValueError("use at most 10 decimal places") f = Fraction(Decimal(s)) / 100 whole, rest = divmod(abs(f.numerator), f.denominator) sign = "-" if f < 0 else "" mixed = f"{sign}{whole} {rest}/{f.denominator}" if whole and rest else None return f"{f.numerator}/{f.denominator}", mixedpercentToFraction("62.5%") は分数5/8を返します。JavaScript版は BigInt を使うので、長い小数でも精度が失われず、Pythonの Fraction は自動的に約分します。
プライバシーと入力の安全性
値の計算はお使いのブラウザ内で行われます。入力したパーセントはサーバーに送信されず、保存もされません。
入力欄は、末尾の%記号と先頭のマイナスを付けた数を受け付けます。文字、空欄、NaN、Infinityはメッセージを表示して拒否され、入力した内容がコードとして実行されることは一切ありません。
- カンマの直後にちょうど3桁が続く場合は千の位の区切りとして読み、1,200 は 1200 になります。それ以外のカンマは小数点として扱うため、12,50 は 12.50 で、0 で始まる 0,500 のような数は小数として読みます。1.234,5 のような混在形式や 1,2,3 のようなあいまいな入力は、推測せずに拒否します。桁区切りの空白(改行されない空白を含む)は無視します。
- 小数点以下の桁数は10までに限られます。
パーセントから分数への変換でよくある間違い
| 間違い | 何が起こるか | 計算機の動作 |
|---|---|---|
| パーセントを10を分母にして書く | 40%を40/10と書くと4になり、2/5にならない | 常に100で割ります |
| 約分しないまま残す | 答えを40/100のままにしてしまう | 最大公約数で約分し、計算過程を示します |
| 小数点を無視する | 12.5%を125/100として扱うと1 1/4になり、1/8にならない | 先に小数を取り除きます |
| 0.5%を1/2と読む | 0.5%は1/200 | 入力を、小数ではなくパーセントとして扱います |
| 丸められた循環小数のパーセント | 33.33%は1/3ではなく3333/10000になる | 正確な分数を示し、最も近い簡単な分数も提示します |
| 帯分数を積と読む | 1 1/4を1 × 1/4と読んでしまう | 仮分数の5/4を並べて示します |
パーセントから分数へ、分数からパーセントへ、パーセントから小数へ
| 変換 | 規則 | 例 | ツール |
|---|---|---|---|
| パーセントから分数へ | 100を分母にして書き、約分する | 75% = 3/4 | この計算機 |
| 分数からパーセントへ | 割ってから100をかける | 3/4 = 75% | 分数からパーセントへの計算機 |
| パーセントから小数 | 100で割る | 75% = 0.75 | 小数からパーセントへの計算機 |
| 小数から分数へ | 位取りを読み取り、約分する | 0.75 = 75/100 = 3/4 | 上と同じ約分の手順 |
パーセントから分数への変換と分数からパーセントへの変換は逆の関係にあるので、75%は3/4になり、3/4はまた75%に戻ります。間に小数があります。75%は0.75で、これは75/100であり、約分すると3/4です。