メインコンテンツへ移動

例の値が入力されています。ご自身の値に置き換えてください。

分数

3/8

計算過程

  1. 37.5% = 375/1000
  2. 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になります。

パーセントを分数に変換する手順

パーセントから分数への変換は、四つの手順で行います。

  1. %記号を外し、その数を100を分母にして書きます。
  2. 数に小数があれば、小数の桁数ごとに分子と分母に10を掛けて、どちらも整数にします。
  3. 分子と分母をその最大公約数で割って、約分します。
  4. 分子が分母より大きい場合は、結果を帯分数で書きます。
p% = p / 100
p = 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%

条件

40%
  1. 手順 1

    40/100と書きます。
  2. 手順 2

    最大公約数は20なので、40/100 = 2/5です。

答え

2/5。

例題2:62.5%、小数のパーセント

条件

62.5%
  1. 手順 1

    62.5/100と書きます。
  2. 手順 2

    小数点以下は一桁なので、分子と分母に10を掛けて625/1000にします。
  3. 手順 3

    最大公約数は125なので、625/1000 = 5/8です。

答え

5/8。

例題3:125%、100超

条件

125%
  1. 手順 1

    125/100と書き、約分すると5/4、帯分数では1 1/4です。

答え

5/4、帯分数では1 1/4。

例題4:0.5%、1未満

条件

0.5%
  1. 手順 1

    0.5/100と書き、これは5/1000で、約分すると1/200です。

答え

1/200。1/2ではありません。0.5は1/2ですが、0.5%は二百分の一です。

パーセントから分数への早見表

このパーセントから分数への早見表には、よく使うパーセントを最も簡単な形の分数で載せています。帯分数のパーセントも正確で、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

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

Python
import refrom decimal import Decimalfrom fractions import Fraction​​def 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 None​​def 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}", mixed

percentToFraction("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です。

よくある質問

パーセントを分数に変換するには?

パーセントを100を分母にして書き、約分します。18%は18/100で、分子と分母を2で割ると9/50です。計算機は不要で、9 ÷ 50 = 0.18 となり、18%に戻ります。

パーセントから分数への変換の公式は?

分数 = パーセント ÷ 100 を最も簡単な形に約分します。小数のあるパーセントでは、先に小数の桁数ごとに分子と分母に10を掛けます。

33.33%は分数でいくつですか?

正確には、33.33%は3333/10000です。多くの場合は1/3を意味していて、それは33 1/3%です。66.67%(2/3)や16.67%(1/6)も同様です。

小数のあるパーセントを分数に変換するには?

100を分母にして書き、小数の桁数ごとに分子と分母に10を掛けます。7.5%は7.5/100 = 75/1000で、約分すると3/40です。

100を超えるパーセントを分数に変換するには?

100を分母にして書いて約分し、必要なら帯分数に直します。250%は250/100 = 5/2 = 2 1/2 です。