我想在整数上显示文化,但"n"
数字格式为我提供双格式输出。
这是一个小例子
int i = 10000;
Console.WriteLine(i.ToString("n", CultureInfo.CreateSpecificCulture("en-US")));
这让我看作10,000.00
我希望输出为10,000
修改字符串的解决方法不是我需要的。
有没有简单的方法可以做到这一点?
答案 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"));
答案 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));