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: -79228162514264337593543950335Deciaml 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