0

我想展示整数的文化,但"n"数字格式给了我双格式输出。

这是一个小例子

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

这给了我作为10,000.00

我想要输出为10,000

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

有什么简单的方法可以做到这一点吗?

4

4 回答 4

8

使用n0而不是n格式。

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

输出将是:

10,000

或者您可以使用:

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

您可能会看到:标准数字格式字符串

数字 ("N") 格式说明符。

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

顺便说一句“N”或“n”是一样的

于 2012-12-14T09:47:52.843 回答
3
Console.WriteLine("{0:n0}",i, CultureInfo.CreateSpecificCulture("en-US"));

或更接近您的原件

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

现场示例:http ://rextester.com/MDJI27648

于 2012-12-14T09:49:13.857 回答
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

于 2012-12-14T09:54:15.813 回答
0

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

你可以改变它,然后CultureInfo在你的所有ToString调用中使用来确保你的字符串是一致的:

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

Console.WriteLine(i.ToString("n", customCI));
于 2012-12-14T09:56:37.187 回答