По какой-то причине это один конкретный double.TryParse()
У меня в моем коде возвращается 0 вместо ожидаемого результата.Double.TryParse не возвращает правильный результат
double parsedMultiplier;
double.TryParse(multiplier, NumberStyles.Number, CultureInfo.InvariantCulture, out parsedMultiplier);
multiplier
устанавливается выше этого кодового фрагмента и является строкой. Я передал его «5» и «86» (как строки), и он возвращает 0. Я положил double.Parse(multiplier)
в окно просмотра Visual Studio, и он правильно разрешает номер. Когда я изменил код следующим образом:
var parsedMultiplier = double.Parse(multiplier);
Он возвращает 0 вместо правильного номера. Не уверен, что здесь происходит. Есть идеи?
Вы уверены, что переменная не получает оптимизированными? Если вы напечатаете 'parsedMultiplier' после, дает ли он вам правильное значение? – clcto
Huh. Вывод его на консоль затем заставляет его работать, хотя при проверке элемента по-прежнему отображается 0 в Visual Studio. Странная ошибка? – Anders
Нет, похоже, вы строите релиз, чтобы он мог оптимизировать определенный код. Вероятно, он сохраняет ценность в регистре, которую визуальная студия не может проверить, просто догадываясь. – clcto