2012-03-20 2 views
12

Я пробую это в двух приложениях; консольное приложение и веб-приложение.Double.Parse не дает правильного результата

В консольного приложения при попытке Double.Parse("0.5") это дает 0,5 или Double.Parse(".5") дает 0,5

Но в веб-приложении Double.Parse("0.5") дает 5,0 и Double.Parse(".5") дает Exception

Входная строка не была в правильном формате.

Может ли кто-нибудь сказать, как решить проблему в веб-приложении?

+1

Укажите код, который вы используете. Он не должен этого делать. –

+1

@Одно в веб-приложении обрабатывает '.' как тысячу разделителей. –

ответ

26

Вы должны предоставить информацию о культуре, иначе она использует информацию о культуре из текущей текущей нити. Попробуйте это вместо:

CultureInfo cultureInfo = CultureInfo.InvariantCulture; // or whatever you prefer 
double result = double.Parse(".5", cultureInfo); 
+0

Данг, собирался написать это, но увидел ваш ответ. Точный и точный. хороший! –

+1

Спасибо @Mark. Это сработало. – MNVR

+2

Ну, я сразу нажал кнопку «Принять» (может быть миллисекундная задержка: p), но она попросила меня подождать 3 минуты :( – MNVR