Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];

Вниз

DecimalSeparator & c#   Найти похожие ветки 

 
Галинка ©   (2006-12-16 21:25) [0]

Как правильно применять натсройки региональные при конвертировании из строки в дробное число?

Т.к. нахожусь в Германии, то региональные настройки немецкие. Десятичный знак по умолчанию запятая. Но в конечных xml-файл надо выводить с точкой. Изменением настроек на американские добилась сохранения числе с точкой в качестве десятичного знака. Но теперь System.Convert не понимает точек. Как быть?


 
Eraser ©   (2006-12-16 21:38) [1]

> [0] Галинка ©   (16.12.06 21:25)

в xml файлы записывайте значение в экспонентном (Scientific) формате.
           decimal d = 3.14M;
           string s = d.ToString("E");
           MessageBox.Show(s);

а для отображения лучше использовать региональные настройки.

ЗЫ у Рихтера данная тема хорошо объясняется.


 
Галинка ©   (2006-12-16 21:45) [2]

спасибо. А я нашла еще метод Replace у строки. Если перед сохранением и перед конвертацией просто менять десятичный знак? Типа:

при записи в xml:

curObjNode.InnerText = ((string)curObject.doubleValue.ToString()).Replace(",", ".");

а при чтении:

curObject.doubleValue = Convert.ToDouble(((string)curObjNode.InnerText).Replace(".", ","));


 
Eraser ©   (2006-12-16 21:48) [3]

> [2] Галинка ©   (16.12.06 21:45)

плохой метод, т.к. никто не гарантирует, что в какой-нибудь стране будет использоваться в качестве разделителя, к примеру, знак вопроса.
лучше сохранять в универсальном формате.


 
Eraser ©   (2006-12-16 21:57) [4]

держи еще вариант, по аналогии с Делфи
           System.Globalization.NumberFormatInfo numInfo = new System.Globalization.NumberFormatInfo();
           decimal d = 3.14M;
           numInfo.NumberDecimalSeparator = ".";
           string s = d.ToString("n", numInfo);
           MessageBox.Show(s);


 
Галинка ©   (2006-12-16 22:07) [5]

Eraser, спасибо еще раз. С ToString у меня проблем нет. Проблемы с обратным конвертом. т.е. ты предлагаешь реплэйс оставить только для конвертирования строки в число?

кстати. сейчас у меня именно так и есть.


 
Eraser ©   (2006-12-16 22:47) [6]

> [5] Галинка ©   (16.12.06 22:07)


> т.е. ты предлагаешь реплэйс оставить только для конвертирования
> строки в число?

ни в коем случае! никаких реплейсов быть не должно.
           System.Globalization.NumberFormatInfo numInfo = new System.Globalization.NumberFormatInfo();
           decimal d = 3.14M;
           numInfo.NumberDecimalSeparator = ".";
           string s = d.ToString("n", numInfo);
           MessageBox.Show(s);
           d = decimal.Parse(s, numInfo);
           s = d.ToString("n");
           MessageBox.Show(s);


когда же уже справку читать начнешь? :)


 
Галинка ©   (2006-12-16 23:52) [7]

спасибо. беда в том, что я даже не представляю, что искать (( только помидорами не кидайте (( теперь буду знать про парсер )) чес слово


 
Eraser ©   (2006-12-17 00:07) [8]

> [7] Галинка ©   (16.12.06 23:52)


> беда в том, что я даже не представляю, что искать

Рихтера книгу купи, там все с самого начала объясняется + куча примеров.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
1-1163576005
net_daemon
2006-11-15 10:33
2007.01.07
Алгоритмический вопрос по комбинаторике


15-1166390678
AntiUser
2006-12-18 00:24
2007.01.07
Системный администратор осужден на 8 лет


15-1166539412
ocean
2006-12-19 17:43
2007.01.07
Отменить установку IE7


2-1166172987
Tupoy
2006-12-15 11:56
2007.01.07
Научите работать с клавой


15-1166274410
VirEx
2006-12-16 16:06
2007.01.07
помогите выбрать mp3 плеер, +для переноса информации





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский