下面是我的函数,如您所见,我想在引号no前面加上前导零,如果我所做的陈述似乎不是最好的方法,我想知道是否有人有更好的方法来做到这一点,我相信会有。
多谢
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();
}
首先,我看不出这是否有效 - 肯定任何> 1 的东西都会被第一个抓住吗? 因此,其他else if
都不会被触及。
其次,我认为您想查看数字格式。 这应该有效:
QuoteNo.ToString("000000");
如果你试图用零填充你的字符串,试着使用ToString。
http://msdn.microsoft.com/en-us/library/dd260048.aspx
裁判:
您可以使用"D"标准用前导零填充整数 数字格式字符串以及精度说明符。你可以垫 整数和浮点数与前导零,通过使用 自定义数字格式字符串。
法典:
int QuoteNo = currQuotetNo + 1;
string strQuoteNo = QuoteNo.ToString("D4");
string strQuoteNo = QuoteNo.ToString().PadLeft(6, '0');