Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 Decimal을 8비트 부호 없는 정수(Byte)로 변환하는 방법

C#에서 지정된 Decimal 값을 해당하는 8비트 부호 없는 정수(byte)로 변환하려면 Decimal.ToByte() 메서드를 사용합니다. 이 메서드는 소수점 이하를 버리고(0 방향으로 반올림) 정수 부분만 byte 값으로 반환합니다. 아래 예제 코드를 통해 살펴보겠습니다.

예제 1

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

실행 결과를 보면 6.59는 6으로, 30.12는 30으로, 69.34는 69로 변환되었습니다. 즉, 소수점 이하 자릿수는 잘려나가고 정수 부분만 byte 타입으로 변환됩니다.

예제 2

이번에는 음수 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에 가까운 음수이므로 0 방향으로 반올림되어 0으로 변환됩니다. 참고로, 변환하려는 Decimal 값이 0보다 작거나 255보다 크면 OverflowException이 발생하므로 실제 개발 시 범위 검사에 유의해야 합니다.