C# में करेंसी के लिए सबसे अच्छा डेटा टाइप decimal है। decimal टाइप एक 128-बिट डेटा टाइप है जो वित्तीय और मौद्रिक गणनाओं के लिए उपयुक्त है। decimal टाइप 1.0 * 10^-28 से लगभग 7.9 * 10^28 तक के मानों को 28-29 महत्वपूर्ण अंकों के साथ दर्शा सकता है। एक decimal वेरिएबल को इनिशियलाइज़ करने के लिए, सफ़िक्स m या M का उपयोग करें।
decimal b = 2.1m;
नीचे दिए गए उदाहरण में decimal के न्यूनतम और अधिकतम मान दिखाए गए हैं।
उदाहरण
using System;
namespace DemoApplication
{
public class Program
{
public static void Main()
{
Console.WriteLine($"Decimal Min Value: {decimal.MinValue}");
Console.WriteLine($"Decimal Max Value: {decimal.MaxValue}");
Console.ReadLine();
}
}
}
आउटपुट
Decimal Min Value: -79228162514264337593543950335
Decimal Max Value: 79228162514264337593543950335
decimal टाइप के मानों का परिमित समूह (-1)^s * c * 10^-e के रूप में होता है, जहां चिह्न s 0 या 1 है, गुणांक c 0 <= *c* < 2^96 द्वारा दिया जाता है, और स्केल e ऐसा है कि 0 <= e <= 28। decimal टाइप साइन्ड जीरो, इन्फिनिटी, या NaN को सपोर्ट नहीं करता। एक decimal को 96-बिट इंटीजर के रूप में दर्शाया जाता है जिसे दस की घात से स्केल किया जाता है। 1.0m से कम निरपेक्ष मान वाले decimals के लिए, मान 28वें दशमलव स्थान तक सटीक होता है, लेकिन उससे आगे नहीं।
1.0m से अधिक या बराबर निरपेक्ष मान वाले decimals के लिए, मान 28 या 29 अंकों तक सटीक होता है। float और double डेटा टाइप्स के विपरीत, 0.1 जैसे decimal भिन्नात्मक संख्याओं को decimal प्रतिनिधित्व में सटीक रूप से दर्शाया जा सकता है। float और double प्रतिनिधित्व में, ऐसी संख्याएं अक्सर अनंत भिन्न होती हैं, जिससे वे प्रतिनिधित्व राउंड-ऑफ एरर के प्रति अधिक संवेदनशील होते हैं।
Decimal टाइप को float और double पर प्राथमिकता दी जाती है क्योंकि इसमें दोनों float और double की तुलना में अधिक सटीकता और छोटी रेंज होती है।
उदाहरण
आइए एक उदाहरण पर विचार करें जहां US डॉलर को भारतीय रुपये में परिवर्तित किया जाता है।
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