Bonjour,
Précision : je débute en JavaScript.
Soit le code JavaScript suivant (que j'exécute dans un interpréteur en-ligne http://math.chapman.edu/~jipsen/js/) :
Le résultat est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var v1 = 0.2; var v2 = 0.1; writeln(v1*v2);
Soit le même code en C# (.NET) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 0.020000000000000004
Le résultat est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 double d1 = 0.2; double d2 = 0.1; Console.WriteLine(d1 * d2);
Pourquoi le résultat est différent alors que j'ai cru comprendre que JavaScript codait les nombres réels en IEEE-754 sur 64 bits (comme .NET le fait avec le type "double") ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 0.02
Encore plus étrange : même en utilisant le type "float" (donc sur 32 bits) en C# le résultat est aussi 0.02.
Merci pour vos éclaircissements.
PurL
Partager