2012-01-16 5 views
5

Просто то, о чем мне было интересно. В Европе запятая в основном используется для десятичных знаков (например, 20,001), но за пределами Европы точка используется в основном (например, 20.001) Как C# обрабатывает это? В случае приложения, которое будет использоваться европейскими и неевропейскими людьми, вам нужно беспокоиться об этом при программировании?Запятая и (десятичная) точка: им нужна различная обработка?

Просто интересно.

+0

Возможный дубликат [Как использовать локализацию в C#] (http://stackoverflow.com/questions/1142802/how-to-use-localization-in-c-sharp). –

+0

Не обман, ИМХО- другой вопрос предполагает, что кто-то знает о локализации, этого нет. –

ответ

12

Что касается языка программирования обеспокоен, точка разделитель десятичной всегда ., и знаки препинания используются для разделения аргументов функции всегда ,. Изменение этого на основе разговорного языка программиста было бы слишком запутанным.

Для пользовательского интерфейса, есть функции форматирования в CultureInfo class, которые могут производить точку представления чисел с плавающей, которая использует десятичную точку разделитель и разделитель тысяч по вашему выбору. (Или, для культур, которые группируют цифры по-разному, чем в триплетах, функции форматирования тоже могут справиться.)

+0

Nice разграничения. –

+0

Ahaa да, это именно то, что я имел в виду, что происходит, когда пользователь использует точку или запятую в (например) текстовое поле, которое в коде используется для inputvalue. Но теперь видно, программист может установить некоторый разделитель, чтобы код мог понять (и, таким образом, получить тот же вход независимо от. Или,) thanx для объяснения – Dante1986

+0

Интересно, что вся индустрия языка программирования ориентирована на США - там не является ни одним языком (который я знаю), где программист из стран Европы мог написать три с половиной 3,5 в своем коде. –

5

CultureInfo обрабатывает эту ситуацию.

Посмотрите на this

// format float to string 
float num = 1.5f; 
string str = num.ToString(CultureInfo.InvariantCulture.NumberFormat);  // "1.5" 
string str = num.ToString(CultureInfo.GetCultureInfo("de-DE").NumberFormat); // "1,5" 
0

Чтобы справиться с этим, вы должны использовать CultureInfo Class. Просто читайте и пишите с правильным форматированием.

0

Это зависит от того, что именно вы делаете ... .NET, как правило, осведомлены о текущих настройках машины/OS и использует те ...

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

 Смежные вопросы

  • Нет связанных вопросов^_^