How to convert an integer to a localized string in .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"
How to convert an integer (or float) to a localized string in .NET?
Bonus Chat
Unique list of number formats in the world:
- 12 345 678 901
- 12,34,56,78,901
- 12345678901
- 12.345.678.901
- 12? 345? 678? 901
- 123.4567.8901
- 12'345'678'901
Additional bonus information where these culture settings can be found in .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 = "'"
source share