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

C#のDecimal.ToUInt16()メソッドの使い方を解説!Decimal値を16ビット符号なし整数に変換する方法

C#のDecimal.ToUInt16()メソッドは、指定されたDecimal(10進数)の値を、それと等価な16ビット符号なし整数(ushort)に変換するために使用されます。

小数点以下は切り捨てられ、変換後の値は0~65,535の範囲に収まる必要があります。範囲外の値を渡した場合は、OverflowExceptionがスローされるので注意しましょう。

構文

Decimal.ToUInt16()メソッドの構文は以下の通りです。

public static ushort ToUInt16 (decimal val);

パラメータ val には、変換対象となる10進数(decimal型)の値を指定します。戻り値は、変換結果の16ビット符号なし整数(ushort型)です。

使用例1:小数を含むDecimal値の変換

まず、Decimal.ToUInt16()メソッドを使って、小数部分を持つDecimal値を変換する基本的な例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      Decimal val = 875.647m;
      Console.WriteLine("Decimal値 = "+val);
      ushort res = Decimal.ToUInt16(val);
      Console.WriteLine("16ビット符号なし整数 = "+res);
   }
}

出力結果

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

Decimal値 = 875.647
16ビット符号なし整数 = 875

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

使用例2:0に近い小さい値の変換

続いて、1未満の小さな値を変換した場合の動作を確認してみましょう。

using System;
public class Demo {
   public static void Main(){
      Decimal val = 0.001m;
      Console.WriteLine("Decimal値 = "+val);
      ushort res = Decimal.ToUInt16(val);
      Console.WriteLine("16ビット符号なし整数 = "+res);
   }
}

出力結果

このコードを実行すると、以下の出力になります。

Decimal値 = 0.001
16ビット符号なし整数 = 0

0.001のように1未満の値の場合、小数点以下が切り捨てられて0に変換されます。

まとめ

Decimal.ToUInt16()メソッドは、decimal型の値をushort型(16ビット符号なし整数)へ変換する静的メソッドです。主なポイントは以下の通りです。

  • 小数点以下は切り捨てられる(四捨五入ではない)
  • 負の値や65,535を超える値を指定するとOverflowExceptionが発生する
  • 戻り値の型はushort型

Decimal値を16ビット符号なし整数として扱いたい場合に、ぜひ活用してください。

  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を指定した場合は