Отформатировать целое число в строку с 5 цифрами - PullRequest
5 голосов
/ 17 ноября 2008

Мне нужна строка, основанная на целом числе, которое всегда должно иметь 5 цифр.

Пример:

myInteger = 999
formatedInteger = "00999"

Каков наилучший способ сделать это в классическом ASP?

Ответы [ 4 ]

9 голосов
/ 17 ноября 2008

Для этого вы можете использовать функции манипуляции со строками.

Предполагается классический 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)
2 голосов
/ 17 ноября 2008

Примерно так я видел большую часть времени:

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
1 голос
/ 25 ноября 2008

Попробуйте это для однострочника (ну, два с предотвращением ошибок):

function padZeroDigits(sVariable, iLength)
    if (iLength <= len(sVariable)) then padZeroDigits = sVariable : exit function : end if
    padZeroDigits = string(iLength - len(sVariable),"0") & sVariable
end function
0 голосов
/ 17 ноября 2008

Действительно, вы должны спросить себя, почему вы можете этого хотеть.

Если это для целей отображения, то, вероятно, лучше применить функцию форматирования строки (будет одна) к целому числу в точке отображения.

С другой стороны, если вам это нужно для внутренней обработки, то есть вы всегда ожидаете пять цифр в цикле или что-то в этом роде, но не собираетесь выполнять арифметику со значением, затем преобразуйте целое число в строку сначала, а затем выполнить любую обработку.

Короче говоря, преобразуйте целочисленную переменную в строку и сохраните в новой переменной, а затем используйте ее.

...