Avatar ·

Konvertierung von Decimal in Double in C#: Wie vermeide ich Genauigkeitsverlust?

Hallo zusammen! Ich bin neu in C# und habe ein Problem bei der Arbeit mit Finanzberechnungen. Ich habe eine Variable vom Typ `decimal`, die einen Betrag auf Cent genau speichert (z.B. 123.45m). Ich muss diesen Wert an eine Methode übergeben, die einen Parameter vom Typ `double` erwartet. Ich habe eine einfache explizite Konvertierung versucht: `(double)myDecimal`, und der Code wurde kompiliert. Aber als ich das Ergebnis ausgegeben habe, bemerkte ich, dass sich die Zahl manchmal ändert. Zum Beispiel wurde `123.45m` zu `123.44999999999999`. Dies verursacht Fehler in den Berechnungen. Hier ist ein Beispiel meines Codes: ```csharp decimal price = 123.45m; double convertedPrice = (double)price; Console.WriteLine(convertedPrice); // Gibt 123.44999999999999 aus ``` Warum passiert das? Ich dachte, `double` kann große Zahlen speichern, aber warum geht die Genauigkeit verloren?