C# में Decimal बनाम Double: कौन सा डेटा टाइप चुनें और कब उपयोग करें?
सभी को नमस्ते! मैं C# में नौसिखिया हूँ और एक ऑनलाइन स्टोर के लिए कैलकुलेटर लिखते समय मुद्रा गणना के लिए डेटा टाइप चुनने की समस्या का सामना करना पड़ा।
मेरे पास सरल कोड है:
```csharp
double price = 19.99;
double tax = 0.21;
double total = price * (1 + tax);
Console.WriteLine(total); // 24.1879 के बजाय कुछ 24.1879... जैसा आउटपुट देता है
```
मुझे बिल्कुल 24.1879 मिलने की उम्मीद थी, लेकिन कभी-कभी 24.187899999999997 जैसे अजीब अंक दिखाई देते हैं। यह हमेशा नहीं होता, लेकिन कीमतों की तुलना करने के तर्क को तोड़ने के लिए पर्याप्त बार होता है।
मैंने गूगल किया और पाया कि `decimal` टाइप है, लेकिन अंतर समझ नहीं आया। दोनों भिन्नात्मक संख्याएँ संग्रहीत करते हैं। जब मैंने `double` को `decimal` से बदला:
```csharp
decimal price = 19.99m;
decimal tax = 0.21m;
decimal total = price * (1 + tax);
Console.WriteLine(total); // 24.1879
```
सब कुछ पूरी तरह से काम करने लगा। लेकिन मैंने सुना है कि `decimal` धीमा है और अधिक मेमोरी का उपयोग करता है।
प्रश्न:
1. `double` और `decimal` के बीच मूलभूत अंतर क्या है?
2. कब `double` का उपयोग करना चाहिए और कब `decimal` का?