Как преобразовать целое число в локализованную строку в .NET?
Пример использования:
Int64 value = 12345678901;
value.ToString();
// returns "12345678901", should be "123,4567,8901"
value.ToString(CultureInfo.CurrentCulture);
// returns "12345678901", should be "123,4567,8901"
value.ToString(CultureInfo.CreateSpecificCulture("en-US"))
// returns "12345678901", should be "12,345,678,901"
value.ToString(CultureInfo.CreateSpecificCulture("fr-CH"))
// returns "12345678901", should be "12'345'678'901"
value.ToString(CultureInfo.CreateSpecificCulture("te-IN"))
// returns "12345678901", should be "12,34,56,78,901"
Как преобразовать целое число (или число с плавающей запятой) в локализованную строку в .NET?
Бонусная болтовня
Уникальный список форматов чисел в мире:
- 12,34,56,78,901
- 12345678901
- 12.345.678.901
- 12? 345? 678? 901
- 123,4567,8901
- 12'345'678'901
Дополнительная информация о бонусах, где эти настройки культуры можно найти в .NET:
CultureInfo.CreateSpecificCulture("en-US").NumberFormat.NumberGroupSizes = { 3 }
CultureInfo.CreateSpecificCulture("en-US").NumberFormat.NumberGroupSeparator = ","
CultureInfo.CreateSpecificCulture("te-IN").NumberFormat.NumberGroupSizes = { 3, 2 }
CultureInfo.CreateSpecificCulture("te-IN").NumberFormat.NumberGroupSeparator = ","
CultureInfo.CreateSpecificCulture("te-IN").NumberFormat.NumberGroupSizes = { 3 }
CultureInfo.CreateSpecificCulture("te-IN").NumberFormat.NumberGroupSeparator = "'"