C# - 在数字上显示文化

时间:2012-12-14 09:46:01

标签: c# cultureinfo number-formatting

我想在整数上显示文化,但"n"数字格式为我提供双格式输出。

这是一个小例子

int i = 10000;
Console.WriteLine(i.ToString("n", CultureInfo.CreateSpecificCulture("en-US")));

这让我看作10,000.00

我希望输出为10,000

修改字符串的解决方法不是我需要的。

有没有简单的方法可以做到这一点?

4 个答案:

答案 0 :(得分:8)

在格式中使用n0而不是n

int i = 10000;
Console.WriteLine(i.ToString("n0", CultureInfo.CreateSpecificCulture("en-US")));

输出将是:

10,000

或者您可以使用:

Console.WriteLine(i.ToString("N0"));

您可能会看到:Standard Numeric Format Strings

数字(“N”)格式说明符。

  

数字(“N”)格式说明符将数字转换为字符串   形式为“-d,ddd,ddd.ddd ...”,其中“ - ”表示负数   符号(如果需要),“d”表示数字(0-9)

顺便说一下“N”或“n”是相同的

答案 1 :(得分:3)

Console.WriteLine("{0:n0}",i, CultureInfo.CreateSpecificCulture("en-US"));

或更接近您原来的

Console.WriteLine(i.ToString("n0"), CultureInfo.CreateSpecificCulture("en-US"));

实例:http://rextester.com/MDJI27648

答案 2 :(得分:0)

你想看到什么样的号码?这是货币金额还是什么?:

c(货币)string.Format(“{0:c}”,i)$ 1,000,000.00

d(十进制)string.Format(“{0:d}”,i)1000000

e(科学)string.Format(“{0:e}”,i)1.000000e + 006

f(定点)string.Format(“{0:f}”,i)1000000.00

g(一般)string.Format(“{0:g}”,i)1000000

n(带分隔符)string.Format(“{0:n}”,i)1,000,000.00

x十六进制string.Format(“{0:x4}”,i)f4240

答案 3 :(得分:0)

"n"打印的小数点后小数位数由NumberFormatInfo.NumberDecimalDigits属性给出。

您可以更改此设置,然后在所有CultureInfo来电中使用ToString以确保字符串一致:

var customCI = CultureInfo.CreateSpecificCulture("en-US");
customCI.NumberFormat.NumberDecimalDigits = 0;

Console.WriteLine(i.ToString("n", customCI));