将整数格式化为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)
答
喜欢的东西,这是我见过的大部分时间:
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
我会在这一个上+1。我喜欢简单。 对于它只是要做的问题: MyString = right(“000000”&cstr(myinteger),6) – Stefan 2008-11-17 12:30:35