我想以同时具有前导零 千位分隔符的方式格式化整数。

我知道 someInt.ToString("D6"); 会给我前导零,但显然它不允许 NumberGroupSeparator 。另一方面 someInt.ToString("N"); 会给我分隔符但没有前导零......

是否可以将两者结合起来将 123456 打印为 00 123 456 ?我知道我可以使用 N 创建字符串,然后在循环中手动向字符串添加零或其他东西,但也许有更好的方法?

编辑:
填充零的数量(数字的总位数)应该是可调整的。

最佳答案

如果您想要 00 123 456,请执行以下操作:

123456.ToString("00 000 000")

如果您需要固定数量的零,我能想到的就是:
int NUM_LENGTH = 6;

//This is not very elegant
var NUM_STR = String.Join("", Enumerable.Range(0, NUM_LENGTH).Select((x, i) => (NUM_LENGTH - i) % 3 == 0 ? " 0" : "0"));

//But at least it works:
var example1 = 123456.ToString(NUM_STR); //Outputs  123 456
var example2 = 1234.ToString(NUM_STR); //Outputs 001 234

关于c# - 带前导零和千位分隔符的格式编号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9989826/

10-15 16:15