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

C#でDecimalを8ビット符号なし整数(byte)に変換する方法

C#で指定されたDecimal(10進数)の値を、それに相当する8ビット符号なし整数(byte型)へ変換するには、Decimal.ToByte()メソッドを使用します。

Decimal.ToByte()メソッドとは

Decimal.ToByte()メソッドは、引数として渡されたDecimal値を最も近い整数に丸め、その結果をbyte型(0~255の範囲)で返します。変換元の値がbyte型の範囲を超える場合や負の値の場合は、OverflowExceptionがスローされる点に注意してください。

サンプルコード

using System;
public class Demo {
   public static void Main(){
      Decimal val1 = 6.59m;
      Decimal val2 = 30.12m;
      Decimal val3 = 69.34m;
      Console.WriteLine("Decimal 1 = "+val1);
      Console.WriteLine("Decimal 2 = "+val2);
      Console.WriteLine("Decimal 3 = "+val3);
      byte res1 = Decimal.ToByte(val1);
      byte res2 = Decimal.ToByte(val2);
      byte res3 = Decimal.ToByte(val3);
      Console.WriteLine("Byte value1 (Decimal to Byte) = "+res1);
      Console.WriteLine("Byte value2 (Decimal to Byte) = "+res2);
      Console.WriteLine("Byte value3 (Decimal to Byte) = "+res3);
   }
}

実行結果

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

Decimal 1 = 6.59
Decimal 2 = 30.12
Decimal 3 = 69.34
Byte value1 (Decimal to Byte) = 6
Byte value2 (Decimal to Byte) = 30
Byte value3 (Decimal to Byte) = 69

この結果からわかるように、小数点以下の値は四捨五入ではなく切り捨てに近い形で処理されています。実際にはDecimal.ToByte()は銀行家の丸め(ToEven)に近い挙動をするため、端数の扱いには注意が必要です。

負の値を変換した場合の例

続いて、負のDecimal値を変換した場合の例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      Decimal val1 = -0.22m;
      Decimal val2 = -0.01m;
      Console.WriteLine("Decimal 1 = "+val1);
      Console.WriteLine("Decimal 2 = "+val2);
      byte res1 = Decimal.ToByte(val1);
      byte res2 = Decimal.ToByte(val2);
      Console.WriteLine("Byte value1 (Decimal to Byte) = "+res1);
      Console.WriteLine("Byte value2 (Decimal to Byte) = "+res2);
   }
}

実行結果

このコードを実行すると、以下の出力が得られます。

Decimal 1 = -0.22
Decimal 2 = -0.01
Byte value1 (Decimal to Byte) = 0
Byte value2 (Decimal to Byte) = 0

-0.22や-0.01といった小さな負の値は、丸め処理によって0に変換されます。ただし、-1以下の値などbyte型の範囲(0~255)から外れる値を渡すと、OverflowExceptionが発生するため、実装時には範囲チェックを行うことが推奨されます。

  1. C#でバイナリ文字列を整数に変換する方法|サンプルコード付きで解説

    C#でバイナリ文字列(「0」と「1」で構成される文字列)を整数に変換するには、Convert.ToInt32メソッドやInt32.Parseなどを活用します。本記事では、文字列の各文字を解析して2進数として計算するカスタム実装の例を、実際のコードとともにわかりやすく解説します。変換の基本的な考え方まず、変換対象となるバイナリ文字列を用意します。string str = 1001;次に、文字列内の各文字を1つずつ解析していきます。try { // 渡された文字列の各文字を解析 val = Int32.Parse(str1[i].ToString()); if (val =

  2. 整数を文字列に変換するC#プログラムの書き方

    C#で整数(int型)を文字列(string型)に変換するには、ToString()メソッドを使用します。このメソッドは、すべての数値型が持つ標準的なメソッドで、呼び出すだけで簡単に文字列表現を取得できます。基本的な変換手順1. 変換したい整数を用意するまず、文字列に変換したい整数値を変数に格納します。int num = 299;2. ToString()メソッドで変換する次に、ToString()メソッドを呼び出して、整数を文字列に変換します。String s; int num = 299; s = num.ToString();完全なサンプルコード以下のコードを実行すると、整数を文字列に変