我是C#的初学者,我在SQL服务器上有一个货币字段,该字段的数据类型为bigint
例如我有这个号码:
12598546
我想用这种格式表示:
12,598,546
我的C#代码:
query_statusOfRPTOST[i].price_year.ToString("N0", CultureInfo.CreateSpecificCulture("es-US"))
我的本地PC中的代码工作正常,但当应用程序在服务器中运行时,编号显示如下:
12598,546
发生了什么?我该如何解决这个问题呢?
答案 0 :(得分:1)
您可以像这样使用string.Format:
string.Format("{0:#,###0}", query_statusOfRPTOST[i].price_year)
答案 1 :(得分:1)
如果您查看此NumberFormat
的{{1}},您会看到下一个:
CultureInfo
根据msdn,小数点分隔符左侧第一组将包含3位数,而其他组不会被分组,这意味着什么。
如果您希望获得以灌浆形式呈现的所需值,您应该执行以下操作之一:
var culture = CultureInfo.GetCultureInfo("es-US");
Console.WriteLine(string.Join(",",culture.NumberFormat.NumberGroupSizes));
//output: 3,0
创建特定文化,并将es-US
设置为NumberGroupSizes
。 [3]
与CultureInfo
的其他现有NumberGroupSizes
- 例如[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