2008-11-17 121 views

回答

9

您可以使用字符串處理函數這一點。

這個假設經典的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

1

喜歡的東西,這是我見過的大部分時間:

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

0

真的,你應該問自己,爲什麼你會想這樣。

如果這是用於顯示的目的,那麼最好在顯示點應用一個字符串格式化函數(將會有一個)給你的整數。另一方面,如果你需要它進行內部處理,也就是說,你總是期待循環中的五位數字或其他任何東西,但是你不希望對該值進行算術運算,那麼將整數轉換爲字符串,然後做任何處理。

總之,將整型變量轉換爲字符串並存儲在一個新變量中,然後使用它。

1

嘗試此一襯墊(以及兩個與錯誤預防):

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