Bonjour,
Je viens vers vous suite à un problème un peu bizarre de conversion (et de cast) et j'aimerais bien comprendre pourquoi, surtout qu'aucun de mes collègues n'a la réponse :p
Bon vu qu'un exemple vaut mieux qu'un long discours voici le problème :
Bon je peux comprendre qu'un cast c'est un risque de perte de précision, surtout de double => int, mais dans ce cas ci, on multiplie par 100 pour justement avoir un nombre qui peut être casté sans perte. (853.0 => (int) => 853)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 double value = 8.53; Console.WriteLine((int)(value * 100)); // affiche 852 Console.WriteLine(Convert.ToInt32(value * 100)); // affiche 853
La seule chose que je peux voir, c'est que 8.53 ne serais pas réellement 8.53 mais quelque chose du genre 8.5299999... Mais la encore, au niveau debug, c'est 8.53 qui s'affiche...
Donc si quelqu'un a une explication à me fournir ^^ Merci :p
Partager