解説
10%加算した金額から10%引けば元に戻る?AIへ割合の逆算を頼む前に基準を見よう
元1000に10%を加えた1100から、元の値を求めるには1.1で割る。加算後の10%引きが990になる理由と、端数処理の条件を整理。

元の価格へ10%を加えたら1100円になった。ここから10%を引けば、元の1000円へ戻るのかな。割合を逆算するときも、何に対する10%なのかが大切だよ。
このページでは、元の値と、一定の率を加算したあとの値を行き来できるようにする。電卓だけでも試せるよ。Python 3.12の小さなコードも使えるけれど、AIアカウントや決済は必要ないんだ。
今回の条件を先に決める
元の金額は1000円、追加する率は10%。追加する金額は元の1000円に対して計算する。税制や実在の料金ではなく、端数が出ない架空の練習だよ。
| 段階 | 計算 | 金額 |
|---|---|---|
| 元の値 | — | 1000円 |
| 元に対する10% | 1000×0.1 | 100円 |
| 加算後 | 1000×1.1 | 1100円 |
追加後の値は、元の110%になる。つまり、元の値に1.1を掛ける計算だね。
加算後の10%は、別の金額になる
1100円からその10%を引くと、引く額は110円。残りは990円になる。
最初に足した100円と、あとで引いた110円では、基準にした金額が違う。同じ10という数字でも、反対の操作として打ち消し合うわけではないんだ。
逆算するときは、掛けた1.1で割る
元の値をxとすると、加算後はx×1.1=1100。したがってx=1100÷1.1=1000と求められる。
from decimal import Decimal
after = Decimal('1100')
rate = Decimal('0.10')
original = after / (1 + rate)
wrong = after * (1 - rate)
print(format(original, 'f'))
print(wrong)
print(original * (1 + rate) == after)
表示は1000、990.00、True。990.00は数値として990を表す。最後は、求めた元の値へ同じ率を加算し直し、1100へ戻るかを確認しているよ。計算を逆向きにも照合すると、取り違えを見つけやすいね。
Decimalは十進数を扱うための型。ここでは数を文字列から作っている。すべての逆算結果がきれいな整数になるわけではなく、割り切れない場合や現実の端数処理は別に確認する必要があるよ。
AIへの依頼に、既知の値を分けて書く
「加算後の総額は1100円。加算率は元の金額に対して10%。丸めは行わない。加算前の金額と追加額を示し、足し戻して1100になるか検算してください」と頼める。
この例の追加額は100円で、総額に対する割合は100÷1100になる。追加額を求めるために、総額1100の10%をそのまま使わないようにしよう。
現実の明細は、丸める前の条件も見る
実際の税込・手数料込みの明細には、対象品目、適用率、固定の手数料、丸める単位や順番などがある。全部が「元の金額×1.1」という同じ式になるとは限らないよ。
すでに丸めた総額だけから元の細かな金額を一意に戻せないこともある。AIへ依頼するときは、原明細や適用条件を確認し、不足した条件を勝手に補わせないようにしよう。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。