下面是我的函数,因为你可以看到我想在引号no前面加上前导零,这个if if语句似乎不是最好的方式,我想知道是否有人有更好的方法这样做,我确定会有。
非常感谢
int QuoteNo = currQuotetNo + 1;
string strQuoteNo = "";
if (QuoteNo.ToString().Length > 1)
{
strQuoteNo = "0000" + QuoteNo.ToString();
}
else if (QuoteNo.ToString().Length > 2)
{
strQuoteNo = "000" + QuoteNo.ToString();
}
else if (QuoteNo.ToString().Length > 3)
{
strQuoteNo = "00" + QuoteNo.ToString();
}
else if (QuoteNo.ToString().Length > 4)
{
strQuoteNo = "00" + QuoteNo.ToString();
}
else if (QuoteNo.ToString().Length > 5)
{
strQuoteNo = "0" + QuoteNo.ToString();
}
else if (QuoteNo.ToString().Length > 6)
{
strQuoteNo = QuoteNo.ToString();
}
else
{
strQuoteNo = QuoteNo.ToString();
}
答案 0 :(得分:7)
首先,我看不出这是有效的 - 当然是任何> 1会被第一个抓到吗?所以其他任何else if
都不会到达。
其次,我认为你想看一下数字格式。这应该有效:
QuoteNo.ToString("000000");
答案 1 :(得分:6)
如果您尝试用零填充字符串,请尝试使用ToString。
http://msdn.microsoft.com/en-us/library/dd260048.aspx
价:
您可以使用“D”标准填充带前导零的整数 数字格式字符串和精度说明符。你可以垫 带有前导零的整数和浮点数 自定义数字格式字符串。
代码:
int QuoteNo = currQuotetNo + 1;
string strQuoteNo = QuoteNo.ToString("D4");
答案 2 :(得分:2)
string strQuoteNo = QuoteNo.ToString().PadLeft(6, '0');