Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 통화에 가장 적합한 데이터 유형은 무엇입니까?

<시간/>

C#에서 통화에 사용하는 가장 좋은 데이터 유형은 10진수입니다. 10진수 유형은 재무 및 화폐 계산에 적합한 128비트 데이터 유형입니다. 10진수 유형은 1.0 * 10^-28에서 약 7.9 * 10^28 사이의 값을 28-29개의 유효 자릿수로 나타낼 수 있습니다. 10진 변수를 초기화하려면 접미사 m 또는 M을 사용하십시오.

소수 b =2.1m;

아래 예시는 10진수의 최소값과 최대값을 보여줍니다.

예시

using System;
namespace DemoApplication{
   public class Program{
      public static void Main(){
         Console.WriteLine($"Deciaml Min Value: {decimal.MinValue}");
         Console.WriteLine($"Deciaml Max Value: {decimal.MaxValue}");
         Console.ReadLine();
      }
   }
}

출력

Deciaml Min Value: -79228162514264337593543950335 

Deciaml Max Value: 79228162514264337593543950335


십진수 유형의 유한한 값 집합은 (-1)^s * c * 10^-e 형식입니다. 여기서 부호 s는 0 또는 1이고 계수 c는 0 <=*c* <2^입니다. 96 및 스케일 e는 0 <=e <=28입니다. 십진수 유형은 부호 있는 0, 무한대 또는 NaN을 지원하지 않습니다. 10진수는 10의 거듭제곱으로 조정된 96비트 정수로 표시됩니다. 절대값이 1.0m 미만인 소수의 경우 값은 소수점 28자리까지 정확하지만 그 이상은 아닙니다.

절대값이 1.0m 이상인 소수의 경우 값은 정확히 28 또는 29자리입니다. float 및 double 데이터 유형과 달리 0.1과 같은 10진수 소수는 10진수 표현으로 정확하게 나타낼 수 있습니다. float 및 double 표현에서 이러한 숫자는 종종 무한 분수이므로 반올림 오류가 발생하기 쉽습니다.

Decimal 유형은 float 및 double보다 정밀도가 더 높고 범위가 더 작기 때문에 float 및 double보다 선호됩니다.

예시

미국 달러가 인도 루피로 변환되는 예를 살펴보겠습니다.

using System;
namespace DemoApplication{
   public class Program{
      public static void Main(){
         decimal usd = 2.5m;
         Console.WriteLine($"USD: {usd}");
         decimal inrOfOneUSD = 75.04m;
         Console.WriteLine($"INR value of one USD: {inrOfOneUSD}");
         decimal inr = usd * inrOfOneUSD;
         Console.WriteLine($"INR value: {inr}");
         Console.ReadLine();
      }
   }
}

출력

위 코드의 출력은

USD: 2.5
INR value of one USD: 75.04
INR value: 187.600