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?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen