将整数格式化为5位数的字符串

问题描述:

我需要一个基于整数的字符串,该整数应该总是有5位数字。将整数格式化为5位数的字符串

例子:

myInteger = 999 
formatedInteger = "00999" 

什么是传统的ASP这样做的最佳方式?

您可以使用字符串处理函数这一点。

这个假设经典的ASP与VBScript(原始版本的答案)。

Const NUMBER_DIGITS = 5 

Dim myInteger 
Dim formatedInteger 

myInteger = 999 
formatedInteger = Right(String(NUMBER_DIGITS, "0") & myInteger, NUMBER_DIGITS) 

这里的优化版本,包装在一个功能,提供可变宽度的填充:

Const NUMBER_PADDING = "000000000000" ' a few zeroes more just to make sure 

Function ZeroPadInteger(i, numberOfDigits) 
    ZeroPadInteger = Right(NUMBER_PADDING & i, numberOfDigits) 
End Function 

' Call in code: 

strNumber = ZeroPadInteger(myInteger, 5) 
+0

我会在这一个上+1。我喜欢简单。 对于它只是要做的问题: MyString = right(“000000”&cstr(myinteger),6) – Stefan 2008-11-17 12:30:35

喜欢的东西,这是我见过的大部分时间:

function PadNumber(number, width) 
    dim padded : padded = cStr(number) 

    while (len(padded) < width) 
     padded = "0" & padded 
    wend 

    PadNumber = padded 
end function 

PadNumber(999, 5) '00999 
+0

我喜欢如何固有处理,其中数比所希望的宽度更多位数的情况。 – 2008-11-22 01:37:21

真的,你应该问自己,为什么你会想这样。

如果这是用于显示的目的,那么最好在显示点应用一个字符串格式化函数(将会有一个)给你的整数。另一方面,如果你需要它进行内部处理,也就是说,你总是期待循环中的五位数字或其他任何东西,但是你不希望对该值进行算术运算,那么将整数转换为字符串,然后做任何处理。

总之,将整型变量转换为字符串并存储在一个新变量中,然后使用它。

尝试此一衬垫(以及两个与错误预防):

function padZeroDigits(sVariable, iLength) 
    if (iLength <= len(sVariable)) then padZeroDigits = sVariable : exit function : end if 
    padZeroDigits = string(iLength - len(sVariable),"0") & sVariable 
end function