sprintf float dtostrf convertir string asp-classic integer format

string - float - Formato entero a cadena con 5 dígitos



sprintf arduino (4)

Necesito una cadena, basada en un entero, que siempre debe tener 5 dígitos.

Ejemplo:

myInteger = 999 formatedInteger = "00999"

¿Cuál es la mejor manera de hacerlo en ASP clásico?


Algo como esto es lo que he visto la mayor parte del tiempo:

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


Realmente, deberías preguntarte por qué querrías esto.

Si esto es para fines de visualización, probablemente sea mejor aplicar una función de formato de cadena (habrá una) a su número entero, en el punto de visualización.

Por otro lado, si lo necesita para el procesamiento interno, es decir, siempre espera cinco dígitos en un bucle o lo que sea, pero no espera hacer cálculos aritméticos sobre el valor, entonces convierta primero el entero en una cadena y luego hacer cualquier procesamiento.

En resumen, convierta la variable entera en una cadena y almacénela en una nueva variable, luego use eso.


Pruebe esto para un trazador de líneas (bueno, dos con prevención de errores):

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


Puede usar funciones de manipulación de cadenas para esto.

Esto supone ASP clásico con VBScript (versión original de la respuesta).

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

Aquí una versión optimizada, envuelta en una función, que ofrece relleno de ancho variable:

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)