パーセントの掛け算と割り算のやり方
パーセントの掛け算は、各パーセントを小数に直して掛け、積をパーセントに戻して書きます。パーセントの割り算、パーセントを掛ける方法、数をパーセントで割る方法も示します。
例の値が入力されています。ご自身の値に置き換えてください。
結果
10
計算過程
- 50 × 20 ÷ 100 = 10
ある店が20%引きにし、さらに新しい価格から10%引きにします。これは30%引きではありません。0.8に0.9を掛けると0.72なので、元の価格の72%を支払うことになり、28%引きです。
パーセントの掛け算と割り算を学ぶには、まずそれぞれのパーセントを小数に直してから、掛けるか割ります。下の四つの場合は似て見えますが、答えの意味はそれぞれ違い、間違いの多くはここから始まります。
パーセントと割り算の考え方
結論: 各パーセントを100で割り、小数どうしを掛けるか割るかして、結果が割合であるときだけパーセントに戻します。50% × 20% = 0.5 × 0.2 = 0.1 = 10%です。
| 場合 | 規則 | 答えは |
|---|---|---|
| パーセント × パーセント | a × b ÷ 100(パーセントとして) | より小さいパーセント |
| 数 × パーセント | n × p ÷ 100 | その数の一部 |
| パーセント ÷ パーセント | a ÷ b | パーセント記号のない単なる比 |
| 数 ÷ パーセント | n × 100 ÷ p | その数が一部になっている全体 |
パーセントの掛け算のやり方
パーセントどうしを掛けるには、両方を小数に直して掛け、積をパーセントで書きます。どちらも100%未満なら、パーセントのパーセントは、どちらよりも必ず小さくなります。20%の50%は10%で、10% × 10%は1%です。
数をそのまま掛けてはいけません。50 × 20 = 1,000を1,000%とするのが、最もよくある間違いです。近道は a × b ÷ 100 で、50 × 20 ÷ 100 = 10%です。
数にパーセントを掛けるには、パーセントを100で割って掛けます。240の15%は240 × 0.15 = 36です。これは、ホームで数の〇%を求める計算と同じです。
パーセントの割り算のやり方
あるパーセントを別のパーセントで割ると、パーセント記号が打ち消し合うため、単なる比になります。20% ÷ 50%は20 ÷ 50 = 0.4です。これは「20%は50%の40%」と読めますが、答えにパーセント記号が付くのは、そう読んだときだけです。
解説の中には、商に100を掛けて、20% ÷ 50% = 40%と、40%が何を指すのかを示さずに書くものがあります。値は0.4です。商に付けるパーセント記号は割合を表すもので、商そのものではありません。
数をパーセントで割る方法
数をパーセントで割るとは、その数が一部になっている全体を求めることです。パーセントを100で割り、その結果で数を割ります。これは n × 100 ÷ p と同じです。200 ÷ 90% = 200 ÷ 0.9 = 222.22です。
答えは、最初の数より大きくなります。200が何かの90%なら、その何かは200より大きいはずです。これは逆算の計算で、逆算計算機が直接計算してくれます。
Excelでのパーセントの掛け算と割り算
Excelは15%を0.15として保存するので、数式は実際の値で計算します。A2に240、B2に15%があるとき、=A2*B2 は36を返します。二つのパーセントのセルを掛けるには、50%と20%で =A2*B2 とすると0.1が返り、パーセントの表示形式のセルでは10%と表示されます。
割るには、20%と50%で =A2/B2 とすると、0.4が返ります。Excelはパーセントの表示形式を引き継ぐことが多く、セルに40%と表示される場合があります。保存されている値は0.4のままなので、結果を読む前に表示形式を確認してください。Excelのガイドでは、表示形式、下方向へのコピー、絶対参照を扱っています。
パーセントの掛け算と割り算の例題
例題1:20%の50%
条件
手順 1
小数に直します:0.5 × 0.2 = 0.1で、10%です。
答え
例題2:顧客の30%がクリックし、そのうち40%が購入する
条件
手順 1
クリック率30%、クリックした人の購入率40%:0.3 × 0.4 = 0.12
答え
例題3:240 × 15%
条件
手順 1
0.15 × 240 = 36。
答え
例題4:二つの割引、20%のあとに10%
条件
手順 1
価格は掛け合わせます:0.8 × 0.9 = 0.72。
答え
例題5:20% ÷ 50%
条件
手順 1
20 ÷ 50 = 0.4。
答え
例題6:200 ÷ 90%
条件
手順 1
200 ÷ 0.9 = 222.22
答え
例題7:30%の取り分を四人で分ける
条件
手順 1
30% ÷ 4 = 一人あたり7.5%。
答え
パーセントの掛け算と割り算のコード
どちらのバージョンも、上のすべての結果を返します。パーセントはこのサイトの計算機と同じ規則で解釈し、標準では小数第二位に丸め、文字、NaN、Infinity、0%の除数は拒否します。
JavaScript
export function parsePercent(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(",", "."); if (!/^[+-]?(\d+\.?\d*|\.\d+)$/.test(s)) throw new TypeError("percent must be a number"); return Number(s);}function fmt(x, places = 2) { const [m, e = "0"] = Number(Math.abs(x).toPrecision(15)).toExponential().split("e"); const r = Math.round(Number(`${m}e${Number(e) + places}`)); return String(Math.sign(x) * Number(`${r}e${-places}`) || 0);}export const multiplyPercents = (a, b, places) => fmt((parsePercent(a) * parsePercent(b)) / 100, places);export const multiplyByPercent = (n, p, places) => fmt((parsePercent(n) * parsePercent(p)) / 100, places);export function dividePercents(a, b, places) { const pb = parsePercent(b); if (pb === 0) throw new RangeError("cannot divide by 0%"); return fmt(parsePercent(a) / pb, places);}export function divideByPercent(n, p, places) { const pp = parsePercent(p); if (pp === 0) throw new RangeError("cannot divide by 0%"); return fmt((parsePercent(n) * 100) / pp, places);}Python
import refrom decimal import Decimal, ROUND_HALF_UPdef parse_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(",", ".") if not re.fullmatch(r"[+-]?(\d+\.?\d*|\.\d+)", s): raise ValueError("percent must be a number") return Decimal(s)def fmt(d, places=2): q = format(d.quantize(Decimal(1).scaleb(-places), rounding=ROUND_HALF_UP), "f") return q.rstrip("0").rstrip(".") if "." in q else qdef multiply_percents(a, b, places=2): return fmt(parse_percent(a) * parse_percent(b) / 100, places)def multiply_by_percent(n, p, places=2): return fmt(parse_percent(n) * parse_percent(p) / 100, places)def divide_percents(a, b, places=2): pb = parse_percent(b) if pb == 0: raise ZeroDivisionError("cannot divide by 0%") return fmt(parse_percent(a) / pb, places)def divide_by_percent(n, p, places=2): pp = parse_percent(p) if pp == 0: raise ZeroDivisionError("cannot divide by 0%") return fmt(parse_percent(n) * 100 / pp, places)multiplyPercents("50%", "20%") は "10" を、divideByPercent(200, "90%") は "222.22" を返します。JavaScript版は、浮動小数点のノイズを有効数字15桁で整えてから、ゼロから遠い方へ丸めます。そのため、1 × 1.5%、つまり0.015が0.02に丸められるような中間の場合でも、PythonのDecimalと一致します。
プライバシーと入力の安全性
値の計算はブラウザー内で行われます。入力した内容がサーバーに送られたり、保存されたりすることはありません。
入力欄は数値を受け付けます。末尾の%記号と、先頭のマイナスは付けても構いません。文字、空欄、NaN、Infinityはメッセージを表示して拒否され、入力した内容がコードとして実行されることは一切ありません。0%の除数は、結果が定義されないため拒否されます。
- カンマの直後にちょうど3桁が続く場合は千の位の区切りとして読み、1,200 は 1200 になります。それ以外のカンマは小数点として扱うため、12,50 は 12.50 で、0 で始まる 0,500 のような数は小数として読みます。1.234,5 のような混在形式や 1,2,3 のようなあいまいな入力は、推測せずに拒否します。桁区切りの空白(改行されない空白を含む)は無視します。
パーセントの掛け算と割り算でよくある間違い
| 間違い | 何が起こるか | 計算機の動作 |
|---|---|---|
| 数のまま掛ける | 50% × 20%を50 × 20とすると、1,000%になります | 100で割り、10%を返します |
| 続けて起こるパーセントを足す | 20%引きのあとに10%引きは、30%引きではありません | 0.8 × 0.9を掛けて、28%を示します |
| 商をパーセントとして読む | 20% ÷ 50%は0.4で、0.4%でも40でもありません | 0.4を返し、20%は50%の40%だと示します |
| 割るべきときに掛ける | 200 ÷ 90%を200 × 90%とすると、180になります | 割って、222.22を返します |
| 0%で割る | 結果は定義されません | メッセージを表示して入力を拒否します |
| より大きなパーセントになると思い込む | 10% × 10%は1%で、どちらよりも小さい | 積と、小数での計算過程を示します |
掛け算、割り算、〇%の、逆算の違い
パーセントを掛けることと、数のパーセントを求めることは、同じ演算です。パーセントで割るのはその逆で、このサイトのほかのところで逆算として登場するのはそのためです。