شكل عدد صحيح إلى سلسلة مع 5 أرقام
-
08-07-2019 - |
سؤال
وأنا بحاجة إلى سلسلة، استنادا إلى عدد صحيح، والذي ينبغي أن يكون دائما 5 أرقام.
مثال:
myInteger = 999
formatedInteger = "00999"
ما هي أفضل طريقة للقيام بذلك في ASP الكلاسيكية؟
المحلول
ويمكنك استخدام وظائف سلسلة التلاعب لذلك.
وهذا يفترض 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)
نصائح أخرى
وشيء من هذا القبيل وهذا هو ما رأيته أكثر من مرة:
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
وهذه محاولة لبطانة واحدة (وأيضا، وهما مع منع الخطأ):
function padZeroDigits(sVariable, iLength)
if (iLength <= len(sVariable)) then padZeroDigits = sVariable : exit function : end if
padZeroDigits = string(iLength - len(sVariable),"0") & sVariable
end function
وحقا، يجب عليك أن تسأل نفسك لماذا قد ترغب بذلك.
وإذا كان هذا هو لأغراض العرض ثم هو على الأرجح أفضل لتطبيق الدالة سلسلة تنسيق (سوف يكون هناك واحد) إلى عدد صحيح الخاص بك، عند نقطة العرض.
ومن ناحية أخرى، إذا كنت في حاجة إليها للمعالجة الداخلية، أي كنت تتوقع دائما خمسة أرقام في حلقة أو أيا كان، ولكن كنت لا أتوقع أن القيام بعملية حسابية على القيمة، ثم تحويل عدد صحيح إلى سلسلة أولا، ثم القيام أية معالجة.
وباختصار، تحويل متغير عدد صحيح إلى سلسلة وتخزينها في متغير جديد، ثم استخدام ذلك.