Я использую эту строку кода для преобразования строк в int16
, int32
, double
и других типов:проблемы Convert.ChangeType с передачей двойной
var convertedValue = value == null ? null : Convert.ChangeType(value, targetType, CultureInfo.InvariantCulture);
Может кто-нибудь объяснить мне, почему convertedValue
установлен в, например, 205.0
, когда value = "20,5"
и targetType
- это двойной?
Благодарим за помощь.
Что это значит делать, '' не Десятичный разделитель в 'InvariantCulture' –
да я просто понял, что тоже. При отладке я набрал свой графический интерфейс 20.5, но, получив значение где-то еще, метод ToString() изменил это значение на «20,5». Странно – user3596113
Почему это странно? 'ToString()' будет уважать текущую культуру. Вы явно переопределяете это, когда выполняете 'Convert.ChangeType'. «У двойников нет какой-то культуры, которую они несут с собой. –