7
votes

Les doubles constantes sont-elles tronquées pour afficher en VS?

La constante math.pi est, selon le réflecteur et MSDN, égale à 3.14159265358979323846. Lors de la recherche sur la classe de mathématiques dans Visual Studio 2010, la valeur est affichée à la section 3.14159. Qui puis-je blâmer pour tronquer des constantes précieuses?


1 commentaires

4 Réponses :


2
votes

Désolé de me répéter, mais comment obtenez-vous ce numéro? Si je couche sur la constante ou imprimez-la dans la fenêtre immédiate ou de la montre dans VS2010, je reçois 3.1415926535897931, qui est également la valeur que je reçois lors de la recherche de MSCORLIB dans le réflecteur.

Bien que cela soit moins précision que les revendications MSDN, il est encore meilleur que le nombre dont vous parlez. Vs doit choisir un formatage pour imprimer des nombres de points flottants. Avec les résultats que je vois, je trouve la valeur par défaut assez acceptable.


0 commentaires

1
votes

Peut-être que vous avez un plugin pour VS 2010 qui modifie la sortie du nombre. Ou peut-être que vous affichez le numéro dans un contexte d'affichage qui doit tronquer le numéro à l'adaptation. exactement dans Visual Studio affichez-vous ce numéro?


0 commentaires

7
votes

Je ne sais pas pourquoi la puissance ne pose pas cela, car cela éclaircirait les choses si incroyablement grandes, mais vous pouvez reproduire comme suit:

  • Ouvrez l'IDE
  • entrez math.pi dans un fichier .cs.
  • Cliquez avec le bouton droit de la souris sur MATH.PI et cliquez sur 'Aller à la définition'

    Ceci ouvre le fichier de métadonnées pour les mathématiques, qui contient les éléments suivants: xxx


3 commentaires

Apparemment, Resharper fournit une meilleure vue de métadonnées que VS, car elle donne la même valeur que le réflecteur. Cependant, si je désactive Resharper, je reçois le résultat que vous décrivez. Impair.


Yup, doit être ça. Ce texte est généré automatiquement à partir des métadonnées. Et ne gêne clairement pas la conversion de constantes publiques de type double à une chaîne avec tous les 15 chiffres significatifs. C'est le comportement de formatage par défaut de la fonction PrintF () en C / C ++ avec le spécificateur de type de format% F. Il est très probable que ce code ait été écrit en C ++ puisque l'interface de dénombrement des métadonnées est basée sur le com.


Merci Hans, c'est assez intéressant!



2
votes

Vous pouvez blâmer la vue VS Metadata, ce que vous obtenez lorsque vous appuyez sur F12 sur quelque chose que vous n'avez pas la source.

Au moins, je présume que c'est ce que vous faites, car c'est le seul endroit où je peux trouver la constante tronquée dont vous parlez.

Pourquoi cela fait-il / où obtient-il cette valeur? Qui sait ...


0 commentaires