C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#における32ビット符号なし整数(UInt)から10進数(Decimal)への暗黙的な変換

C#では、32ビット符号なし整数型(uint)から10進数型(decimal)への暗黙的な変換が可能です。これは、decimal型がuintの表現範囲(0 ~ 4,294,967,295)をすべてカバーしているため、データ損失やオーバーフローの心配なく自動的に変換されるからです。

まず、変換元となるuint型の変数を宣言します。

uint val = 342741539;

decimal型への変換は、特別なキャスト構文を使わずに、単純に値を代入するだけで行えます。これが「暗黙的な変換」です。

decimal dec;
// 暗黙的な変換
dec = val;

サンプルコード

以下は、暗黙的な変換を実際に確認できる完全なプログラム例です。

using System;

public class Demo {
   public static void Main() {
      uint val = 342741539;
      decimal dec;

      // 暗黙的な変換
      dec = val;

      Console.WriteLine("Decimal = " + dec);
   }
}

実行結果

Decimal = 342741539

ポイント解説

  • 暗黙的変換の条件: 変換元の型の値が、変換先の型で必ず表現できる場合、コンパイラはキャストなしでの代入を許可します。uintdecimal はこの条件を満たしています。
  • 逆方向には注意: decimal から uint への変換は値域が狭くなるため、明示的なキャストが必要であり、実行時に例外が発生する可能性もあります。
  • 精度について: decimal 型は28〜29桁の有効桁数を持つため、金額計算など高精度が求められる場面でよく使用されます。
  1. 【C#入門】整数リテラルと浮動小数点リテラルの使い方を徹底解説

    整数リテラルとはC#における整数リテラルは、10進数または16進数の定数として記述できます。基数(radix)は接頭辞(プレフィックス)で指定し、16進数の場合は「0x」または「0X」を値の先頭に付加します。10進数の場合には接頭辞を付けません。さらに、値の末尾にサフィックスを付けることで型を明示することも可能です。例えば「u」または「U」を付けるとunsigned int型になります。以下に整数リテラルの例を示します。10 // int 18u // unsigned intそれでは、これらのリテラルを使って実際に変数を宣言・初期化してみましょう。// int int a = 10

  2. Pythonで10進数を2進数のリストに変換する方法

    Pythonは柔軟性の高いプログラミング言語であり、データ処理の中で発生するさまざまな要件に対応できます。10進数の数値を2進数に変換し、さらに各桁をリストとして扱いたい場合には、以下に紹介する2つの方法が便利です。format関数を使う方法書式指定子(フォーマッター)に使う文字によって、数値を10進数・16進数・8進数・2進数など、任意の基数でフォーマットできます。以下の例では、書式指定として0:0bを使用し、format関数に2進数へ変換したい整数を渡しています。その後、文字列化した2進数を1文字ずつint型に変換してリストを作成します。コード例Dnum = 11 print(与えられた