为什么不使用c#CultureInfo拆分bigint数字?
我是C#的初学者,在SQL server中有一个currency字段,该字段的数据类型是为什么不使用c#CultureInfo拆分bigint数字?,c#,asp.net,string,string-formatting,cultureinfo,C#,Asp.net,String,String Formatting,Cultureinfo,我是C#的初学者,在SQL server中有一个currency字段,该字段的数据类型是bigint 例如,我有一个号码: 12598546 我想以这种格式显示它: 12,598,546 12598,546 我的C#代码: query_statusOfRPTOST[i].price_year.ToString("N0", CultureInfo.CreateSpecificCulture("es-US")) 该代码在我的本地PC上运行正常,但当应用程序在服务器上运行时,该代码以以下
bigint
例如,我有一个号码:12598546
我想以这种格式显示它:
12,598,546
12598,546
我的C#代码:
query_statusOfRPTOST[i].price_year.ToString("N0", CultureInfo.CreateSpecificCulture("es-US"))
该代码在我的本地PC上运行正常,但当应用程序在服务器上运行时,该代码以以下格式显示:
12,598,546
12598,546
发生了什么事?我该如何解决这个问题呢?您可以使用字符串。格式如下:
string.Format("{0:#,###0}", query_statusOfRPTOST[i].price_year)
如果查看此
CultureInfo
的NumberFormat
,您将看到下一步:
var culture = CultureInfo.GetCultureInfo("es-US");
Console.WriteLine(string.Join(",",culture.NumberFormat.NumberGroupSizes));
//output: 3,0
这意味着,根据小数点分隔符左侧的内容,第一组将包含3位数字,而另一组将不分组
如果希望通过groupping以格式显示所需的值,应执行以下操作之一:
es US
创建特定区域性,并将numbergroupsize
设置为[3]
李>
CultureInfo
与预定义的numbergroupsize
一起使用[3]
——例如,en-US
long a = 12598546;
var culture = CultureInfo.CreateSpecificCulture("es-US");
culture.NumberFormat.NumberGroupSizes = new int[] { 3 };
Console.WriteLine(a.ToString("N0", culture));
// output 12,598,546
第二个示例的代码:
long a = 12598546;
Console.WriteLine(a.ToString("N0", CultureInfo.GetCultureInfo("en-US")));
// output 12,598,546