Преобразовать строковое представление чисел меньше 1 в удвоение - PullRequest
0 голосов
/ 17 июля 2011

Метод Convert.ToDouble (String) преобразовывает указанное строковое представление числа в эквивалентное число с плавающей запятой двойной точности.

У меня есть эта строка кода: double d = Convert.ToDouble ("0.3");

и это дает мне 3,0 вместо 0,3.Для чисел больше 1 он работает как положено.Почему?

Ответы [ 3 ]

6 голосов
/ 17 июля 2011

Скорее всего, проблема с локалью. Существуют культуры, в которых . не является десятичным разделителем.

Попробуйте double.Parse("0.3",CultureInfo.InvariantCulture)

1 голос
/ 17 июля 2011

Попробуйте это:

NumberFormatInfo provider = new NumberFormatInfo();
provider.NumberDecimalSeparator = ".";
double d = Convert.ToDouble("0.3", provider);
0 голосов
/ 17 июля 2011

Каковы текущие настройки культуры?Вероятно, потому, что в настройках культуры вы используете '.'не является десятичным разделителем!

...