Conversion de Decimal en Double en C# : comment éviter la perte de précision ?
Bonjour à tous ! Je suis débutant en C# et j'ai rencontré un problème lors du travail avec des calculs financiers. J'ai une variable de type `decimal` qui stocke un montant avec une précision jusqu'aux centimes (par exemple, 123.45m). Je dois passer cette valeur à une méthode qui accepte un paramètre de type `double`.
J'ai essayé une simple conversion explicite : `(double)myDecimal`, et le code s'est compilé. Mais lorsque j'ai affiché le résultat, j'ai remarqué que le nombre changeait parfois. Par exemple, `123.45m` est devenu `123.44999999999999`. Cela provoque des erreurs dans les calculs.
Voici un exemple de mon code :
```csharp
decimal price = 123.45m;
double convertedPrice = (double)price;
Console.WriteLine(convertedPrice); // Affiche 123.44999999999999
```
Pourquoi cela se produit-il ? Je pensais que `double` pouvait stocker de grands nombres, mais pourquoi la précision est-elle perdue ? Existe-t-il un moyen de convertir `decimal` en `double` sans perte de décimales ? Ou dois-je toujours utiliser uniquement `decimal` pour l'argent ? Je vous remercie d'avance pour vos explications et exemples de code.