次の方法で共有


decimal (C# リファレンス)

decimal キーワードは、128 ビットのデータ型を示します。decimal 型は、浮動小数点型よりも有効桁数が多く、範囲が狭いので、財務や金融の計算に適しています。decimal 型の概算の範囲と有効桁数は、次のとおりです。

おおよその範囲 有効桁数 .NET Framework 型

decimal

±1.0 × 10−28 to ±7.9 × 1028

有効桁数 28 ~ 29

System.Decimal

リテラル

実数値リテラルを decimal として扱うには、サフィックス m または M を使用します。次に例を示します。

        decimal myMoney = 300.5m;

サフィックス m がない場合は double として扱われ、コンパイラ エラーになります。

変換

整数型は、暗黙的に decimal に変換され、結果は decimal になります。したがって、サフィックスなしで整数リテラルを使用して 10 進変数を初期化できます。次に例を示します。

        decimal myMoney = 300;

浮動小数点型と decimal 型の間に暗黙の型変換はありません。2 つの型の間で変換を実行するには、キャストを使用する必要があります。次に例を示します。

        decimal myMoney = 99.9m;
double x = (double)myMoney;
myMoney = (decimal)x;

decimal 型と数値の整数型を同じ式に混在させることもできます。ただし、decimal 型と浮動小数点型をキャストなしで混在させると、コンパイル エラーになります。

暗黙の数値変換の詳細については、「暗黙的な数値変換の一覧表 (C# リファレンス)」を参照してください。

明示的な数値変換の詳細については、「明示的な数値変換の一覧表 (C# リファレンス)」を参照してください。

10 進出力の書式指定

結果の書式を指定するには、String.Format メソッドを使用するか、String.Format() を呼び出す System.Console.Write メソッドを使用します。通貨書式を指定するには、例 2 に示すように、標準の通貨の書式指定文字列 "C" または "c" を使用します。String.Format メソッドの詳細については、「System.String.Format(System.String,System.Object)」を参照してください。

使用例

ここでは、同じ式に decimalint が混在している例を示します。結果は decimal 型になります。

double 変数と decimal 変数を追加する場合には、次のようなステートメントを使用します。

double x = 9;
Console.WriteLine(d + x); // Error

次のエラー メッセージが表示されます。

Operator '+' cannot be applied to operands of type 'double' and 'decimal'

// keyword_decimal.cs
// decimal conversion
using System;
public class TestDecimal 
{
    static void Main () 
    {
        decimal d = 9.1m;
        int y = 3;
        Console.WriteLine(d + y);   // Result converted to decimal
    }
}

出力

12.1

ここでは、通貨の書式指定文字列を使用して、出力の書式を指定する例を示します。小数点以下の桁数が $0.99 を超えるため、x を丸めている点に注意してください。最大固定桁数を表す変数 y は、適切に書式設定された数値がそのまま表示されます。

// keyword_decimal2.cs
// Decimal type formatting
using System;
public class TestDecimalFormat 
{
    static void Main () 
    {
        decimal x = 0.999m;
        decimal y = 9999999999999999999999999999m;
        Console.WriteLine("My amount = {0:C}", x);
        Console.WriteLine("Your amount = {0:C}", y);
    }
}

出力

My amount = $1.00
Your amount = $9,999,999,999,999,999,999,999,999,999.00

C# 言語仕様

詳細については、「C# 言語仕様」の次のセクションを参照してください。

  • 1.3 型と変数

  • 4.1.7 Decimal 型

参照

関連項目

C# のキーワード
整数型の一覧表 (C# リファレンス)
組み込み型の一覧表 (C# リファレンス)
暗黙的な数値変換の一覧表 (C# リファレンス)
明示的な数値変換の一覧表 (C# リファレンス)
Decimal Structure

概念

C# プログラミング ガイド

その他の技術情報

C# リファレンス