将前导零添加到数字

时间:2012-05-29 11:58:15

标签: string vbscript formatting numbers

我需要获取像05:00,-05:00这样的值,当输入时数字值为5,-5 ..如果输入值如10,-12则不需要添加前导零...可以创建一些功能,检查有多少位数有数字,然后添加,如果需要“0”字符,但也许任何人有最好的决定?

4 个答案:

答案 0 :(得分:2)

我能找到最接近帮助的是VBScript中的FormatNumber函数。 W3在这里有一个很好的示例和测试工具:http://www.w3schools.com/vbscript/func_formatnumber.asp

您很可能必须将此函数包装起来以处理附加0的特定情况。但这应该非常简单,只需执行类似的IFTHEN语句:

IF x > 0 & x < 10 THEN "0" + x
ELSEIF x > -10 & x < 0 THEN "-0" + Abs(x)

或者那种性质的东西。同样,这必须是一个字符串格式化的东西,因为整数总是反映5或-5而不是05或-05

希望有所帮助

答案 1 :(得分:1)

尝试

Function FormatHour (input)
    Dim sign
    If (input < 0) Then
        sign = "-"
    End If

    FormatHour = sign & FormatDateTime(TimeSerial(Abs(input), 0, 0), vbShortTime)
End Function

答案 2 :(得分:0)

微软的这个lpad和rpad示例怎么样?

http://support.microsoft.com/kb/96458

答案 3 :(得分:0)

Alexey,下次请发表您所拥有的内容,现在我们必须猜测您真正想要的内容,所以这是我的猜测

a = array(0, 5, -5, 15, -55) 
for each e in a 
  wscript.echo mid(" -",instr(e,"-")+1,1)&right("0"&abs(e),2)&":00" 
next    

 00:00
 05:00
-05:00
 15:00
-55:00

OR

for i = 0 to uBound(a) 
  a(i) = mid(" -",instr(a(i),"-")+1,1)&right("0"&abs(a(i)),2)&":00" 
next 
wscript.echo join(a,",")  
'00:00, 05:00,-05:00, 15:00,-55:00