我需要一个基于整数的字符串,它应该总是有 5 位数字。
例子:
myInteger = 999
formatedInteger = "00999"
在经典 ASP 中执行此操作的最佳方法是什么?
我需要一个基于整数的字符串,它应该总是有 5 位数字。
例子:
myInteger = 999
formatedInteger = "00999"
在经典 ASP 中执行此操作的最佳方法是什么?
您可以为此使用字符串操作函数。
这假定带有 VBScript 的经典 ASP(答案的原始版本)。
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
试试这个单行(好吧,两个防止错误):
function padZeroDigits(sVariable, iLength)
if (iLength <= len(sVariable)) then padZeroDigits = sVariable : exit function : end if
padZeroDigits = string(iLength - len(sVariable),"0") & sVariable
end function
真的,你应该问自己为什么你可能想要这个。
如果这是出于显示目的,那么最好在显示点将字符串格式化函数(会有一个)应用于您的整数。
另一方面,如果您需要它进行内部处理,即您总是希望循环中有五位数字或其他什么,但您不希望对值进行算术运算,然后先将整数转换为字符串然后做任何处理。
简而言之,将整数变量转换为字符串并存储在一个新变量中,然后使用它。