Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ชนิดข้อมูลที่ดีที่สุดที่จะใช้สำหรับสกุลเงินใน C # คืออะไร?


ประเภทข้อมูลที่ดีที่สุดที่จะใช้สำหรับสกุลเงินใน C # คือทศนิยม ชนิดทศนิยมเป็นชนิดข้อมูล 128 บิต ที่เหมาะสมสำหรับการคำนวณทางการเงินและการเงิน ประเภททศนิยมสามารถแสดงค่าได้ตั้งแต่ 1.0 * 10^-28 ถึงประมาณ 7.9 * 10^28 โดยมีตัวเลขนัยสำคัญ 28-29 หลัก ในการเริ่มต้นตัวแปรทศนิยม ให้ใช้คำต่อท้าย m หรือ M

ทศนิยม b =2.1m;

ตัวอย่างด้านล่างแสดงค่าต่ำสุดและสูงสุดของทศนิยม

ตัวอย่าง

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 ประเภททศนิยมไม่สนับสนุนค่าศูนย์ที่ลงนาม อนันต์ หรือของ NaN ทศนิยมจะแสดงเป็นจำนวนเต็ม 96 บิต ขยายด้วยกำลังสิบ สำหรับทศนิยมที่มีค่าสัมบูรณ์น้อยกว่า 1.0m ค่าจะตรงกับตำแหน่งทศนิยมที่ 28 แต่ห้ามเพิ่มเติม

สำหรับทศนิยมที่มีค่าสัมบูรณ์มากกว่าหรือเท่ากับ 1.0m ค่าจะเป็น 28 หรือ 29 หลักเท่านั้น ตรงกันข้ามกับประเภทข้อมูลทศนิยมและสองเท่า ตัวเลขเศษส่วนทศนิยม เช่น 0.1 สามารถแสดงในรูปแบบทศนิยมได้อย่างแม่นยำ ในการแทนค่าทศนิยมและการแทนค่าสองเท่า ตัวเลขดังกล่าวมักจะเป็นเศษส่วนอนันต์ ทำให้การแทนค่าเหล่านั้นมีแนวโน้มที่จะเกิดข้อผิดพลาดในการปัดเศษขึ้น

ควรใช้ประเภททศนิยมมากกว่าทศนิยมและทศนิยมสองเท่า เนื่องจากมีความแม่นยำมากกว่าและช่วงที่เล็กกว่าทั้งทศนิยมและสองเท่า

ตัวอย่าง

ให้เราพิจารณาตัวอย่างที่แปลงดอลลาร์สหรัฐเป็นรูปีอินเดีย

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