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

时间:2008-11-17 11:57:23

标签: string asp-classic integer format

我需要一个基于整数的字符串,它应该总是有5位数。

示例:

myInteger = 999
formatedInteger = "00999"

在经典ASP中执行此操作的最佳方式是什么?

4 个答案:

答案 0 :(得分:9)

您可以使用字符串操作函数。

这假定使用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)

答案 1 :(得分:2)

这样的事情是我大部分时间都看到的:

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

答案 2 :(得分: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

答案 3 :(得分:0)

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

如果这是出于显示目的,那么最好在显示点处对整数应用字符串格式化函数(将有一个)。

另一方面,如果你需要它用于内部处理,即你总是期望循环中的五位数或其他什么,但你不期望对该值进行算术运算,那么将整数转换为字符串先做,然后做任何处理。

简而言之,将整数变量转换为字符串并存储在新变量中,然后使用它。