C#如何实现数字左侧补0到指定长度?有无内置实现方法?
C# 数字左侧补0的内置实现方案
C# 原生提供了两种非常简单的内置实现方式,无需手动写分支判断补位逻辑:
1. 直接操作数值类型(int/long/double等)
调用ToString()时传入格式化字符串即可:
- 整数类型可以用
D+长度的格式符,补位到指定长度 - 所有数值类型通用
0占位符格式,补位到指定长度
示例代码:
// 整数场景 int num1 = 6; string result1 = num1.ToString("D3"); // 输出 006 int num2 = 77; string result2 = num2.ToString("000"); // 输出 077 // 浮点数场景 double num3 = 63; string result3 = num3.ToString("000"); // 输出 063 // 原长度超过3位时自动保留完整内容,不会截断 int num4 = 1234; string result4 = num4.ToString("000"); // 输出 1234
2. 操作已转为字符串的数字
使用字符串内置的PadLeft方法,第一个参数为补位后的总长度,第二个参数为要填充的字符:
string str1 = "6"; string result1 = str1.PadLeft(3, '0'); // 输出 006 string str2 = "77"; string result2 = str2.PadLeft(3, '0'); // 输出 077 // 原长度超过3位时自动返回原字符串,不会截断 string str3 = "1234"; string result3 = str3.PadLeft(3, '0'); // 输出 1234
你的代码优化方案
可以直接把原逻辑简化为1行,无需额外的分支判断:
_totalSupplierCountStr = GetTotalSupplierNumberForInvoices().ToString("000");
如果需要补位到更长的长度,只需要修改格式化字符串里的0的数量,或者PadLeft的第一个参数即可,适配性很强。
内容的提问来源于stack exchange,提问作者user5405648
相关产品推荐
相关产品推荐

