En théorie, sur un IEEE 754 système conforme, la même opération avec les mêmes valeurs d'entrée est censé produire le même résultat.
Wikipédia résume cela:
La norme IEEE 754-1985 permis à de nombreuses variations dans les implémentations (telles que l'encodage de certaines valeurs et la détection de certaines exceptions). IEEE 754-2008 a renforcé ces, mais quelques différences subsistent (en particulier pour les formats binaires). La reproductibilité de la clause recommande que les normes linguistiques devrait fournir un moyen d'écrire reproductible des programmes (c'est à dire, les programmes qui produira le même résultat dans toutes les implémentations d'une langue), et décrit ce qui doit être fait pour obtenir des résultats reproductibles.
Comme d'habitude, cependant, la théorie est différente de la pratique. La plupart des langages de programmation courants, C# inclus, ne sont pas strictement conformes à la norme IEEE 754, et ne fournissent pas nécessairement un moyen d'écrire un reproductibles programme.
En outre, moderne CPU/Upc de le rendre un peu maladroit pour assurer le strict IEEE 754 de la conformité. Par défaut, ils fonctionneront avec "précision étendue", en stockant les valeurs avec plus de bits que d'un lit double en interne. Si vous voulez sémantique stricte vous avez besoin pour extraire des valeurs de la FPU en un PROCESSEUR inscrire, vérifier et gérer divers FPU exceptions, puis poussez les valeurs de retour en -- entre chaque MODE d'exploitation. En raison de cette maladresse, en stricte conformité a une perte de performance, même au niveau du matériel. Le C# standard choisi un plus "bâclée" l'exigence d'éviter l'imposition d'une pénalité sur les performances sur le cas le plus fréquent où les petites variations ne sont pas un problème.
Rien de cela n'est souvent un problème dans la pratique, car la plupart des programmeurs ont intériorisé l' (incorrect, ou au moins trompeuse) idée que les mathématiques à virgule flottante est inexact. En outre, les erreurs dont nous parlons ici sont tous très petits, afin qu'ils sont éclipsés par le plus commun de perte de précision causé par la conversion de décimal.