如何在 .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 中将整数(或浮点数)转换为本地化字符串?
奖金喋喋不休
世界上独一无二的数字格式列表:
可以在 .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 = "'"
最佳答案
使用精度为 0 的“N”standard format specifier。
using System;
class Test
{
static void Main()
{
long value = 12345678901;
string text = value.ToString("N0");
Console.WriteLine(text);
}
}
结果(在我的英国机器上):
12,345,678,901
这将在各个方面考虑当前的文化。当然,您可以单独指定一种文化。
编辑 :特定文化的通用形式:
value.ToString("N0", CultureInfo.CreateSpecificCulture("fr-CH"));
关于.net - 如何使用 .NET 中的当前区域性将整数转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8333208/