如何解决需要使用VB,使用Visual Studio 2019的Windows应用程序在值前附加零
在迭代中,我需要在迭代器之前附加零。如果迭代器的值小于10,则需要“ 00”,如果大于或等于10,则需要添加“ 0”。我尝试了几种可能性,但“ J”的值未用零更新。请帮助进行操作。
如果我在手表中添加了此表达式并检查了显示为“ 000”的值,但变量J不会使用该值进行更新以进行进一步的验证。
*******
Dim int_DoubleZero As Integer = "00"
Dim int_SingleZero As Integer = "0"
Dim J As Integer
xl_LastUsed_Row = xlSH.UsedRange.Rows.Count
xl_LastUsed_Column = xlSH.UsedRange.Columns.Coun
For J = 0 To xl_LastUsed_Column
If J < 10 Then
J = CStr(int_DoubleZero) + Cstr(J)
ElseIf J = 10 And J < 100 Then
Format(J,"00")
J = CStr(int_SingleZero) + Cstr(J)
End If
Next
解决方法
您要串联一个String,然后在分配给J
时将其转换回整数。这会去除字符串中的前导零。您需要一个String变量来保留新值。
Dim int_DoubleZero As Integer = "00"
Dim int_SingleZero As Integer = "0"
Dim J As Integer
Dim k as String
xl_LastUsed_Row = xlSH.UsedRange.Rows.Count
xl_LastUsed_Column = xlSH.UsedRange.Columns.Count
For J = 0 To xl_LastUsed_Column
If J < 10 Then
k = CStr(int_DoubleZero) + Cstr(J)
ElseIf J = 10 And J < 100 Then
k = CStr(int_SingleZero) + Cstr(J)
End If
Next
操纵循环迭代器通常是一种不好的做法,因为它可能会导致意外的问题。 J
也将作为循环的最后迭代结束。
假定您将Numeric
数据用作String
,否则将数字001设为1或0001.5设为1.5则没有意义。因此,对于数字的字符串表示形式,您可以使用:
.Padleft(length,Char)
示例:
For i As Integer = 0 To 111
Console.WriteLine(i.ToString.PadLeft(3,CChar("0")))
Next
' here are also decimals inside
Console.WriteLine(CStr(1.25.ToString("N2")).PadLeft(6,CChar("0")))
或者您可以使用如下所示的直接格式字符串:
'for Integers
.ToString("000")
For i As Integer = 0 To 111
Console.WriteLine(i.ToString("000"))
Next
'for Decimals
.ToString("000.00")
For i As Integer = 0 To 111
Console.WriteLine((i + (0.7)).ToString("000.00"))
Next
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。