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)