Maison >développement back-end >Tutoriel C#.Net >Résoudre le problème du calcul de virgule flottante en C#
Laissez-moi vous montrer un problème de calcul pour tester vos capacités arithmétiques.
0,1 +0,1 +0,1 - 0,3 est égal à quoi ?
Vous pouvez poser une question si simple : me méprisez-vous ? Il doit être égal à 0.
Il n'y a pas de problème si vous calculez directement, mais que se passe-t-il si vous utilisez un ordinateur ?
Le moment d'assister au miracle est arrivé, regardez le code :
void Main() { var f = 0.1 +0.1 +0.1 -0.3; Console.WriteLine("f=={0}",f); }
Résultats en cours :
Cela est dû à la précision de l'ordinateur, au manque de précision dans le stockage interne et le fonctionnement de l'ordinateur, etc. Je ne pourrai peut-être pas expliquez-le clairement, mais vous pouvez utiliser la solution suivante :
void Main() { //var f = 0.1 +0.1 +0.1 -0.3; //Console.WriteLine("f=={0}",f); var f1 = new Decimal(0.1) + new Decimal(0.1) + new Decimal(0.1) - new Decimal(0.3); Console.WriteLine("f1 == {0}",f1); }
Résultats en cours d'exécution :
C'est le résultat du fonctionnement normal.
La la la ! ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!