我想展示整数的文化,但"n"
数字格式给了我双格式输出。
这是一个小例子
int i = 10000;
Console.WriteLine(i.ToString("n", CultureInfo.CreateSpecificCulture("en-US")));
这给了我作为10,000.00
我想要输出为10,000
像修改字符串这样的解决方法不是我需要的。
有什么简单的方法可以做到这一点吗?
我想展示整数的文化,但"n"
数字格式给了我双格式输出。
这是一个小例子
int i = 10000;
Console.WriteLine(i.ToString("n", CultureInfo.CreateSpecificCulture("en-US")));
这给了我作为10,000.00
我想要输出为10,000
像修改字符串这样的解决方法不是我需要的。
有什么简单的方法可以做到这一点吗?
使用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”是一样的
Console.WriteLine("{0:n0}",i, CultureInfo.CreateSpecificCulture("en-US"));
或更接近您的原件
Console.WriteLine(i.ToString("n0"), CultureInfo.CreateSpecificCulture("en-US"));
你想看什么样的号码?它是货币金额还是什么?:
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
打印的小数点后位数由属性"n"
给出。NumberFormatInfo.NumberDecimalDigits
你可以改变它,然后CultureInfo
在你的所有ToString
调用中使用来确保你的字符串是一致的:
var customCI = CultureInfo.CreateSpecificCulture("en-US");
customCI.NumberFormat.NumberDecimalDigits = 0;
Console.WriteLine(i.ToString("n", customCI));