Frage

Ich brauche einen String haben, basierend auf einer ganzen Zahl, die immer 5 Ziffern haben.

Beispiel:

myInteger = 999
formatedInteger = "00999"

Was ist der beste Weg, dies in klassischen ASP zu tun?

War es hilfreich?

Lösung

Sie können String-Manipulation Funktionen für diese.

Dies setzt voraus, klassische ASP mit VBScript (ursprünglicher Version der Antwort).

Const NUMBER_DIGITS = 5

Dim myInteger
Dim formatedInteger

myInteger = 999
formatedInteger = Right(String(NUMBER_DIGITS, "0") & myInteger, NUMBER_DIGITS)

Hier eine optimierte Version, in einer Funktion eingewickelt, mit variabler Breite Polsterung bietet:

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)

Andere Tipps

So etwas ist, was ich die meiste Zeit gesehen habe:

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

Versuchen Sie, diese für einen Einzeiler (na ja, zwei mit Fehlervermeidung):

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

Wirklich, sollten Sie sich fragen, warum diese wünschen könnte.

Wenn dies für die Anzeige ist, dann ist es wahrscheinlich am besten, eine Zeichenfolge Formatierung-Funktion anzuwenden (es wird eine sein), um Ihre ganze Zahl, an der Stelle der Anzeige.

Auf der anderen Seite, wenn Sie es für die interne Verarbeitung benötigen, dh Sie sind immer fünf Stellen in einer Schleife zu erwarten oder was auch immer, aber Sie erwarten nicht Arithmetik zu tun auf dem Wert, wandeln dann die ganze Zahl in einen String und dann eine Verarbeitung tun.

Kurz gesagt, wandelt das Integer-Variable in einen String und speichern Sie in einer neuen Variablen, dann verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top