2015-03-13 63 views
3

我有整数,Vb.net格式编号为String

Dim myNum as Integer = 123 

但我要转换为字符串为0123(有5号)。

我该怎么做,谢谢。

+1

[?C#int转换成字符串填零(可能重复http://stackoverflow.com/questions/ 4325267/c-sharp-convert-int-to-string-with-padding-zeros) – Eric 2015-03-13 08:04:02

+0

该文本与示例冲突。 '0123'只有4个字符,但你说你想要5.你能澄清吗? – 2015-03-14 03:24:05

+0

@Eric我相信这是重复的。某处还必须有另一个VB.Net数字格式的问题(我现在懒得搜索它)。但它不是重复的链接问题。虽然它们非常相似,甚至使用相同的.Net API,但我们应该关闭C#重复的VB问题的情况非常罕见。 – 2015-03-14 03:29:28

回答

-1

至于整数转换成字符串,尝试简单地使用设置是这样的:

Dim myNum as Integer = 123; 
Dim stringValue as String; 
stringValue = CStr(myNum); 

如果您需要到前导零添加到这一点,你可以用字符串手动添加它们,或者你可以尝试编写去像宏:

If (myNum - (10 * (myNum/10))) = 5 Then 
    stringValue = CStr(myNum) 
ElseIf (myNum - (10 * (myNum/10))) = 4 Then 
    stringValue = "0" & CStr(myNum) 
ElseIf (myNum - (10 * (myNum/10))) = 3 Then 
    stringValue = "00" & CStr(myNum) 
ElseIf (myNum - (10 * (myNum/10))) = 2 Then 
    stringValue = "000" & CStr(myNum) 
ElseIf (myNum - (10 * (myNum/10))) = 1 Then 
    stringValue = "0000" & CStr(myNum) 
Else 
    stringValue = "00000" 

的(myNum的 - (10 *(myNum的/ 10)))的有效模量的数学。信用:VBA equivalent to Excel's mod function

我没有测试这个代码,所以我很抱歉,如果它不能开箱即用,但总体思路如上。上面也假设123或1234等数字。您还可以尝试操纵字符串并通过测试新转换的字符串的长度来组合它们。

Dim newString as String 
If Len(stringValue) = 3 Then 
    newString = "00" & stringValue 
ElseIf Len(stringValue) = 2 Then 
    newString = "000" & stringValue 

+1

_Way_过于复杂。这是一个单线。 – 2015-03-14 03:25:49

+1

伟大的反馈。总是乐于学习更简单的方法来做事情。我是VBA noob,所以很高兴看到更高效的想法。 – Ambasabi 2015-03-14 05:57:12

+0

这不是VBA。 VB.Net是一个非常不同的动物。 – 2015-03-14 14:48:43

0

这里是一个将数字转换为字符串一个很简单的方法,并添加前导零如果数字长度小于5位

Dim myNum as Integer = 123 
Dim strNum as String 

strNum = String(5-len(myNum),"0") & cstr(myNum) 

debug.print strNum 'This will display 0
+0

还有一个更简单的方法:'myNum.ToString(“00000”)' – 2015-03-14 03:30:12

+0

感谢Joel,但问题是VBA不是VB或VB.Net。 ToString方法在VBA中不可用 – 2015-03-17 02:45:45

+0

确定吗?因为它被标记为VB.Net,并且修订历史记录不会将VBA作为问题的一部分。如果你是对的,我们需要,我们需要修复标签。 – 2015-03-17 02:56:43

4

目前尚不清楚,从你的问题是你想要4个字符还是5.下面是你如何做5个。如果你想要4个,只需要在格式字符串中删除一个零。

Dim myNum as Integer = 123 
Dim myNumString As String = myNum.ToString("00000") 

您也可以用的String.Format()使用此:

Dim myNumString As String = String.Format("{0:00000}", myNum)