C# での浮動小数点 vs 倍精度 vs 10 進数

Muhammad Maisam Abbas 2024年2月16日
  1. C# の Float データ型
  2. C# の Double データ型
  3. C# の Decimal データ型
  4. C# での浮動小数点 vs 倍精度 vs10 進数
C# での浮動小数点 vs 倍精度 vs 10 進数

このチュートリアルでは、C# の Float、Double、および Decimal データ型の類似点と相違点について説明します。

C# の Float データ型

Float データ型は浮動小数点値を C# に格納します。float キーワードは、float 変数を宣言するために使用されます。初期化中に f 指定子を使用して、値が浮動小数点値であることをコンパイラーに通知する必要があります。浮動小数点変数のサイズは 32 ビットです。これは、-3.402823e38 から +3.402823e38 までの値を格納できることを意味します。float 変数の精度は C# で 7 桁です。次のコード例は、C# で float 変数を宣言する方法を示しています。

using System;

namespace data_types {
  static void Main(string[] args) {
    float fval = 100.0f / 3;
    Console.WriteLine(fval);
  }
}
}

出力:

33.33333

フロート変数 fvalfloat キーワードと C# の f 指定子で初期化しました。出力された出力は、fval の精度が 7 桁のみであることを示しています。

C# の Double データ型

Double データ型は浮動小数点値も C# に格納します。double キーワードは、double 変数を宣言するために使用されます。初期化中に d 指定子を使用して、値が double 値であることをコンパイラーに通知する必要があります。double 変数のサイズは 64 ビットであり、-1.79769313486232e308 から +1.79769313486232e308 までの値を格納できることを意味します。double 変数の精度は C# で 15 桁です。次のコード例は、C# で double 変数を宣言する方法を示しています。

using System;

namespace data_types {
  static void Main(string[] args) {
    double dval = 100.0d / 3;
    Console.WriteLine(dval);
  }
}
}

出力:

33.3333333333333

C# では、double 変数 dvaldouble キーワードと d 指定子で初期化しました。出力された出力は、dval の精度が 15 桁であることを示しています。

C# の Decimal データ型

Decimal データ型は、浮動小数点値も C# に格納します。decimal キーワードは、10 進変数を宣言するために使用されます。初期化中に M 指定子を使用して、値が 10 進値であることをコンパイラーに通知する必要があります。10 進変数のサイズは 128 ビットで、-79,228,162,514,264,337,593,543,950,335 から+79,228,162,514,264,337,593,543,950,335 までの値を格納できることを意味します。10 進変数の精度は、C# で 29 桁です。次のコード例は、C# で 10 進変数を宣言する方法を示しています。

using System;

namespace data_types {
  static void Main(string[] args) {
    decimal dval = 100.0M / 3;
    Console.WriteLine(dval);
  }
}
}

出力:

33.333333333333333333333333333

10 進変数 dvaldecimal キーワードと C# の M 指定子で初期化しました。出力された出力は、dval の精度が 29 桁であることを示しています。

C# での浮動小数点 vs 倍精度 vs10 進数

float および double データ型は、decimal データ型よりも精度とサイズが低くなります。したがって、金融取引のように多数の有効数字を必要とする機密情報を記録するには、10 進数データ型をお勧めします。ただし、decimal データ型は float および double データ型よりもはるかに低速です。したがって、すでに近似値であり、非常に高い精度を必要としない科学的値を扱う場合は常に、必要に応じて float または double データ型を使用できます。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp Float

関連記事 - Csharp Double

関連記事 - Csharp Decimal