HOWTO · Csharp

C# でのパーセンテージ計算

この記事では、C# でパーセンテージを計算する方法を学習します。

このページの内容

パーセンテージは、全体を100としたときの割合を表します。C#では、値を掛ける前にパーセンテージを100で割ります。同じ考え方で、増加分として加える量や、減少分として差し引く量を求められます。

パーセンテージ計算の基本

パーセンテージは100分のいくつかを表す分数です。たとえば15%は、100個のうち15個という意味です。合計に対する割合を求めるには、まずパーセンテージを100で割って小数にし、その値に合計を掛けます。たとえば、200の15%は(15 / 100) * 200で求められ、答えは30です。

割合として求めた量と、増減後の合計値は区別しましょう。増加の場合は、増加分を計算して元の値に加えます。減少の場合は、減少分を計算して元の値から差し引きます。この区別を意識すると、新しい合計値が求められているのに増減分だけを答えてしまうのを防げます。

基本的なパーセンテージ計算

値のパーセンテージを求める式は次のとおりです。

amount = (percentage / 100) * total

次の完全なC#プログラムでは、200の15%を計算します。doubleを使うことで、100で割る計算の小数部分を保てます。

次の例を実行してください。コードと出力例は原文どおりに掲載されるため、含まれる表示文は英語のままです。

using System;

class Program
{
    static void Main()
    {
        double total = 200;
        double percentage = 15;
        double amount = (percentage / 100) * total;

        Console.WriteLine($"15% of 200 is {amount}");
    }
}

点数をパーセンテージで表すには、獲得点を満点で割り、その結果に100を掛けます。たとえば80点満点のテストなら、分母は80です。点数を4で割ると平均を求めることになりますが、それは4つの値が個別の点数である場合です。満点がわかっているときに割合を求める計算とは異なります。

パーセンテージによる増加の計算

元の値を一定の割合だけ増やすには、まず増加分を計算し、それを元の値に加えます。

new value = original value + (increase percentage / 100 * original value)

元の値が100で、20%増加させる場合、増加分は20で、増加後の値は120です。このプログラムは両方の値を表示するため、価格や数量など、ほかの数値にも計算を応用できます。

このセクションのコードと表示されるラベルや出力は英語のままです。

using System;

class Program
{
    static void Main()
    {
        double originalValue = 100;
        double increasePercentage = 20;
        double increaseAmount = (increasePercentage / 100) * originalValue;
        double newValue = originalValue + increaseAmount;

        Console.WriteLine($"Increase amount: {increaseAmount}");
        Console.WriteLine($"New value: {newValue}");
    }
}

パーセンテージによる減少の計算

値を一定の割合だけ減らすには、元の値をもとに減少分を計算し、それを差し引きます。

new value = original value - (decrease percentage / 100 * original value)

たとえば、価格150に10%の割引を適用すると、割引額は15となり、割引後の価格は135です。割引率は元の価格に対して適用します。パーセンテージの数値そのものを引くのは誤りです。たとえば、価格が必ずしも100ではないため、10が価格の10%に当たるとは限りません。

このセクションのコードと表示されるラベルや出力は英語のままです。

using System;

class Program
{
    static void Main()
    {
        double originalPrice = 150;
        double discountPercentage = 10;
        double discountAmount = (discountPercentage / 100) * originalPrice;
        double finalPrice = originalPrice - discountAmount;

        Console.WriteLine($"Discount amount: {discountAmount}");
        Console.WriteLine($"Final price: {finalPrice}");
    }
}

金額の精度や通貨の丸め処理が重要な金融アプリケーションでは、doubleではなくdecimalを使用してください。アプリケーションで通貨額が必要となる箇所で、丸め規則を選んで適用します。どの丸め規則を使うかは、パーセンテージの計算式だけでは決まりません。

よくある質問

C#で数値のパーセンテージを求めるにはどうすればよいですか?

パーセンテージを100で割り、その値に数値を掛けます。たとえば、200の15%は(15 / 100) * 200で求められ、答えは30です。

増加率を使って値を増やすにはどうすればよいですか?

元の値に増加率を掛けて100で割ると、増加分が求められます。その増加分を元の値に加えます。

減少率や割引率を使って値を減らすにはどうすればよいですか?

元の値に減少率を掛けて100で割り、減少分を求めます。その減少分を元の値から差し引きます。

点数をパーセンテージで表すにはどうすればよいですか?

(marks earned / total possible marks) * 100を使います。分母には、同じテストまたは点数の組み合わせにおける満点を指定します。複数の点数の平均を求める計算では、別の問いへの答えになります。