Computer >> Máy Tính >  >> Lập trình >> C#

Loại dữ liệu tốt nhất để sử dụng cho tiền tệ trong C # là gì?

Loại dữ liệu tốt nhất để sử dụng cho đơn vị tiền tệ trong C # là số thập phân. Kiểu thập phân là kiểu dữ liệu 128 bit thích hợp cho các tính toán tài chính và tiền tệ. Kiểu thập phân có thể đại diện cho các giá trị nằm trong khoảng từ 1,0 * 10 ^ -28 đến khoảng 7,9 * 10 ^ 28 với 28-29 chữ số có nghĩa. Để khởi tạo một biến thập phân, hãy sử dụng hậu tố m hoặc M.

b thập phân =2,1m;

Ví dụ dưới đây hiển thị giá trị tối thiểu và tối đa của số thập phân.

Ví dụ

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();
      }
   }
}

Đầu ra

Deciaml Min Value: -79228162514264337593543950335 

Deciaml Max Value: 79228162514264337593543950335


Tập hợp hữu hạn các giá trị kiểu thập phân có dạng (-1) ^ s * c * 10 ^ -e, trong đó dấu s là 0 hoặc 1, hệ số c được cho bởi 0 <=* c * <2 ^ 96 và tỷ lệ e sao cho 0 <=e <=28. Kiểu thập phân không hỗ trợ số 0 có dấu, số nguyên hoặc số NaN. Một số thập phân được biểu diễn dưới dạng số nguyên 96 bit được chia tỷ lệ bằng lũy ​​thừa của mười. Đối với các số thập phân có giá trị tuyệt đối nhỏ hơn 1,0m, giá trị chính xác đến chữ số thập phân thứ 28, nhưng không xa hơn.

Đối với số thập phân có giá trị tuyệt đối lớn hơn hoặc bằng 1,0m, giá trị chính xác đến 28 hoặc 29 chữ số. Trái ngược với kiểu dữ liệu float và double, các số thập phân chẳng hạn như 0,1 có thể được biểu diễn chính xác trong biểu diễn thập phân. Trong các biểu diễn float và double, các số như vậy thường là phân số vô hạn, làm cho các biểu diễn đó dễ bị sai số làm tròn hơn.

Loại thập phân được ưu tiên hơn float và double vì nó có độ chính xác cao hơn và phạm vi nhỏ hơn so với cả float và double.

Ví dụ

Chúng ta hãy xem xét một ví dụ trong đó đô la Mỹ được chuyển đổi sang đồng Rupee của Ấn Độ.

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();
      }
   }
}

Đầu ra

Đầu ra của đoạn mã trên là

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