Двойные константы усекаются для отображения в VS? - PullRequest
7 голосов
/ 18 сентября 2010

Константа Math.Pi, согласно отражателю и MSDN, равна 3,14159265358979323846.При просмотре класса Math в Visual Studio 2010 значение отображается как 3.14159.Кого я могу обвинить в урезании драгоценных констант?

Ответы [ 4 ]

7 голосов
/ 18 сентября 2010

Я не знаю, почему ОП не публикует это, так как это прояснит ситуацию невероятно, но вы можете воспроизвести следующее:

  • Откройте IDE
  • Введите Math.PI в файл .cs.
  • Щелкните правой кнопкой мыши Math.PI и выберите «Перейти к определению»

Откроется файл метаданных для Math., который содержит следующее:

    //
    // Summary:
    //     Represents the ratio of the circumference of a circle to its diameter, specified
    //     by the constant, π.
    public const double PI = 3.14159;
2 голосов
/ 18 сентября 2010

Вы можете винить представление метаданных VS, которое вы получаете, нажимая F12 на том, к чему у вас нет источника.

По крайней мере, я предполагаю, что это то, что вы делаете, потому что это единственное место, где я могу найти усеченную константу, о которой вы говорите.

Почему он это делает / откуда он получает это значение? Кто знает ...

2 голосов
/ 18 сентября 2010

Извините, что повторяюсь, но как вы получили этот номер? Если я наведу курсор на константу или напечатаю ее в окне Immediate или Watch в VS2010, я получу 3.1415926535897931, что также является значением, которое я получаю, глядя на mscorlib в Reflector.

Хотя это и менее точно, чем утверждает MSDN, оно все же намного лучше, чем число, о котором вы говорите. VS должен выбрать форматирование для печати чисел с плавающей запятой. С результатами я вижу, что по умолчанию вполне приемлемо.

1 голос
/ 18 сентября 2010

Возможно, у вас есть плагин для VS 2010, который изменяет вывод числа. Или, может быть, вы отображаете число в контексте дисплея, который должен усечь число, чтобы соответствовать. Где именно в Visual Studio вы просматриваете этот номер?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...