J'ai rencontré un problème de précision de calcul des flottants en C#, voici l'exemple minimal de travail :
int num = 160;
float test = 1.3f;
float result = num * test;
int result_1 = (int)result;
int result_2 = (int)(num * test);
int result_3 = (int)(float)(num * test);
Console.WriteLine("{0} {1} {2} {3}", result, result_1, result_2, result_3);
Le code ci-dessus produira "208 208 207 208", quelqu'un pourrait-il expliquer la valeur bizarre de result_2
qui devrait être 208
? (le binaire ne peut pas représenter 1.3 précisément, ce qui causerait un problème de précision des flottants, mais je suis curieux des détails).