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

C#のDecimal.ToUInt64()メソッドとは?使い方をサンプルコード付きで解説

C#のDecimal.ToUInt64()メソッドは、指定されたDecimal(10進数)の値を、それに相当する64ビット符号なし整数(ulong)に変換するための静的メソッドです。

小数点以下は切り捨てられ、整数部分のみが変換結果として返されます。また、負の値を指定した場合はOverflowExceptionがスローされる点に注意が必要です。

構文

メソッドの構文は以下のとおりです。

public static ulong ToUInt64 (decimal val);

パラメータ val には、変換対象となる10進数(decimal型)の値を指定します。

戻り値

変換後の値に相当する64ビット符号なし整数(ulong)が返されます。

使用例1:正の小数を変換する場合

まず、Decimal.ToUInt64()メソッドを使って正の小数を変換する例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      Decimal val = 99.29m;
      Console.WriteLine("Decimal value = " + val);
      ulong res = Decimal.ToUInt64(val);
      Console.WriteLine("64-bit unsigned integer = " + res);
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Decimal value = 99.29
64-bit unsigned integer = 99

このように、元の値が「99.29」であっても、小数点以下は切り捨てられ、「99」という整数値に変換されていることがわかります。

使用例2:0に近い小数を変換する場合

続いて、0より大きく1未満の小数を変換した場合の動作を確認してみましょう。

using System;
public class Demo {
   public static void Main(){
      Decimal val = 0.001m;
      Console.WriteLine("Decimal value = " + val);
      ulong res = Decimal.ToUInt64(val);
      Console.WriteLine("64-bit unsigned integer = " + res);
   }
}

出力結果

実行結果は以下のとおりです。

Decimal value = 0.001
64-bit unsigned integer = 0

元の値が「0.001」という小さな数値でも、小数点以下が切り捨てられるため、結果は「0」になります。

まとめ

  • Decimal.ToUInt64()は、decimal型の値を64ビット符号なし整数(ulong)へ変換する静的メソッドである
  • 小数点以下は切り捨てられて変換される
  • 負の値やulongの範囲(0~18,446,744,073,709,551,615)外の値を指定するとOverflowExceptionが発生する

decimal型から符号なし整数への変換を行う際には、これらの仕様を理解したうえで活用しましょう。

  1. C#のDecimal.Floor()メソッドの使い方を徹底解説

    概要C#のDecimal.Floor()メソッドは、指定されたDecimal型の数値を「負の無限大方向」に向かって最も近い整数へ丸める静的メソッドです。正の数であれば小数点以下がそのまま切り捨てられますが、負の数の場合はより小さい整数側へ丸められる点に注意が必要です。構文構文は以下のとおりです。public static decimal Floor (decimal val);引数valには、丸めの対象となるDecimal型の値を指定します。使用例1:正の数の場合まず、正のDecimal値に対してDecimal.Floor()メソッドを使用する例を見てみましょう。using System; p

  2. C#のDecimal.Divide()メソッドとは?構文と使い方をサンプルコード付きで解説

    C#のDecimal.Divide()メソッドは、指定された2つのDecimal型の値を除算するための静的メソッドです。金額計算など、浮動小数点誤差を避けたい正確な10進数演算が必要な場面で活用されます。 構文 Decimal.Divide()メソッドの構文は以下の通りです。 public static decimal Divide (decimal val1, decimal val2); 各パラメータの意味は次の通りです。 val1:被除数(割られる数) val2:除数(割る数) 戻り値は、val1をval2で割った結果を表すdecimal型の値です。なお、val2に0を指定した場合は