C# में Decimal को Double में बदलना: सटीकता (precision) के नुकसान से कैसे बचें?
सभी को नमस्ते! मैं C# में नया हूँ और वित्तीय गणनाओं के साथ काम करते समय एक समस्या का सामना कर रहा हूँ। मेरे पास `decimal` प्रकार का एक वेरिएबल है, जिसमें पैसे की राशि सटीकता (precision) के साथ संग्रहीत है (उदाहरण के लिए, 123.45m)। मुझे इस मान को एक ऐसे method में पास करना है जो `double` प्रकार का पैरामीटर लेता है।
मैंने सरल explicit casting आज़माया: `(double)myDecimal`, और कोड कम्पाइल हो गया। लेकिन जब मैंने परिणाम प्रिंट किया, तो मैंने देखा कि संख्या कभी-कभी बदल जाती है। उदाहरण के लिए, `123.45m` `123.44999999999999` में बदल गया। इससे गणनाओं में त्रुटियाँ हो रही हैं।
यहाँ मेरे कोड का एक उदाहरण है:
```csharp
decimal price = 123.45m;
double convertedPrice = (double)price;
Console.WriteLine(convertedPrice); // आउटपुट: 123.44999999999999
```
ऐसा क्यों हो रहा है? मैंने सोचा था कि `double` बड़ी संख्याओं को स्टोर कर सकता है, लेकिन सटीकता (precision) क्यों खो रही है?