Запятая и (десятичная) точка: нужна ли им разная обработка? - PullRequest
5 голосов
/ 16 января 2012

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

Просто любопытно об этом.

Ответы [ 5 ]

13 голосов
/ 16 января 2012

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

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

7 голосов
/ 16 января 2012

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"
3 голосов
/ 16 января 2012

Да, в c # (и действительно, в целом .NET Framework) для этой цели есть концепция культур:

http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

и

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=VS.100).aspx

0 голосов
/ 16 января 2012

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

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

0 голосов
/ 16 января 2012

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

...