Il n'y a pas une telle option.
La FPU mot de commande dans une application en C# est initialisé par le CLR au démarrage. Changer n'est pas une option fournie par le cadre. Même si vous essayez de le changer par pinvoking _control87_2() , alors il ne va pas durer longtemps; toute exception sera la cause du mot de contrôle, de réinitialiser l'exception de la manipulation de la mise en œuvre à l'intérieur de la CLR. Ce qui a été écrit pour faire face à un autre aspect de la FPU mot de contrôle, il permet de démasquer les exceptions de virgule flottante. Il sera également préjudiciable à tout autre code managé qui ne s'attendent pas à l'état global du être changé comme ça.
Ayant pas de contrôle direct sur le matériel est implicite de restriction lorsque vous exécutez le code dans une machine virtuelle. Non pas que cela est facile à faire en code natif soit, les bibliothèques ont tendance à mal se conduire quand ils ont trop attendre de la FPU pour avoir l'initialisation par défaut. Un problème particulier à l'exception de masquage des drapeaux, des Dll créé avec les outils Borland avoir un talent pour le tournage des exceptions, ce qui rend d'autres ne respectent pas ce code n'est pas écrit pour faire face à une telle exception. Une très laid problème à résoudre, le FPU mot de contrôle est la pire variable globale que vous pouvez imaginer.
Ce n'mettre le fardeau sur vous pour ne pas laisser vos calculs en virgule flottante ne veulent plus rien dire comme ça. Le calcul denormals presque toujours produit des résultats non-sens, si ce n'est de la radicalement les petites valeurs, alors, au moins, de la rapidité de la perte de chiffres significatifs. Tronquer les valeurs inférieures à 2,2 E-308 à 0 est à vous. Oui, pas très pratique. Peut-être que c'est correct pour un programme de livraison de l'absurdité des résultats un peu plus lent que d'habitude :)