本文へスキップ
BecomeCoder

C#文法コース · 第1章 基礎文法とデータ型 · レッスン3

数値型(int・double・decimal)

ブラウザで完結

導入

数値には「整数」と「小数」があり、用途によって使う型が変わります。特にお金の計算では型の選択がバグに直結するため、代表的な3つを押さえます。

図解

flowchart TB
    N["数値型"] --> I["int<br/>整数<br/>例: 20, -5, 1000"]
    N --> D["double<br/>小数(高速・誤差あり)<br/>例: 3.14, 円周率・座標"]
    N --> M["decimal<br/>小数(正確・お金向き)<br/>例: 1980.00m, 金額"]
    style M fill:#e8f5e9

サンプル

int count = 5;             // 整数
double ratio = 0.1;        // 小数(浮動小数点)
decimal price = 1980.00m;  // 小数(お金用)。末尾に m を付ける

Console.WriteLine(count);   // 5
Console.WriteLine(ratio);   // 0.1
Console.WriteLine(price);   // 1980.00

// double は誤差が出ることがある
Console.WriteLine(0.1 + 0.2);        // 0.30000000000000004
// decimal は正確
Console.WriteLine(0.1m + 0.2m);      // 0.3
  • int は整数専用。小数は入らない
  • double は高速だが2進小数のため0.1 + 0.2のような誤差が出る
  • decimal は正確。お金の計算は必ずdecimal。値の末尾にmを付ける

演習

// TODO: decimal型の変数 total に 3980.00m を入れて出力してください
___
  • 期待される出力: 3980.00
ヒント1を見る

末尾のmを忘れないでください

ヒント2を見る

decimal total = 3980.00m; Console.WriteLine(total);

まとめ

  • 整数はint、小数はdouble、お金はdecimal
  • doubleは誤差が出る、decimalは正確
  • decimalリテラルは末尾にmを付ける

次回: intの仲間である整数型と、桁あふれ(オーバーフロー)を学びます。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。