Как преобразовать целое число в строку с использованием текущей культуры в .NET?

Как преобразовать целое число в локализованную строку в .NET?

Exempli gratia:

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"

Как преобразовать целое число (или float) в локализованную строку в .NET?

Bonus Chatter

Уникальный список форматов чисел в мире:

  • 12 345 678 901
  • 12,34,56,78,901
  • 12,345,678,901
  • 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 = "'"
6
задан Ian Boyd 30 November 2011 в 21:31
поделиться