Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net将数字格式化为字符串_Vb.net - Fatal编程技术网

Vb.net将数字格式化为字符串

Vb.net将数字格式化为字符串,vb.net,Vb.net,在Visual Basic.NET中,我有一个整数值: Dim myNum as Integer = 123 如何将其转换为字符串“0123”(有4位数字)?至于将整数转换为字符串,请尝试使用如下设置: Dim myNum as Integer = 123; Dim stringValue as String; stringValue = CStr(myNum); 如果需要将前导零添加到此字段中,可以手动将它们附加到字符串中,也可以尝试编写类似以下内容的宏: If (myNum - (10

在Visual Basic.NET中,我有一个整数值:

Dim myNum as Integer = 123

如何将其转换为字符串“0123”(有4位数字)?

至于将整数转换为字符串,请尝试使用如下设置:

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)))实际上是一个模数学。学分:

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

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

等等。

这里有一种非常简单的方法,可以将数字转换为字符串,并在数字长度小于5位时添加前导零

Dim myNum as Integer = 123
Dim strNum as String 

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

debug.print strNum   'This will display 00123

你的问题不清楚你想要4个字符还是5个字符。这是你5年后的表现。如果需要4,只需在格式字符串中删除一个零

Dim myNum as Integer = 123
Dim myNumString As String = myNum.ToString("00000")
您还可以使用
String.Format()
执行此操作:

现在是字符串插值:

Dim myNumString As String = $"{myNum:00000}"
记住,一旦这样做,值就不再是数字。它变成文本,这意味着如果您尝试执行排序或算术之类的操作,它将表现为文本。

尝试使用Tostring()格式


文本和示例可能存在重复冲突
0123
仅为4个字符,但您说需要5个字符。你能澄清一下吗?@Eric我肯定这是一个复制品。在某个地方肯定还有另一个VB.Net数字格式的问题(我现在懒得搜索它)。但这不是一个重复的链接问题。虽然它们非常相似,甚至使用相同的.NETAPI,但我们很少会因为C#replicate.Way过于复杂而关闭VB问题。这是一条单行线,反馈很好。总是乐于学习更简单的做事方法。我是一个VBA noob,所以很高兴看到更有效的想法。这不是VBA。Net是一种非常不同的动物,这更有意义。非常感谢。还有一个更简单的方法:
myNum.ToString(“00000”)
谢谢Joel,但问题是针对VBA的,而不是VB或VB.Net。ToString方法在VBAAre中不可用。是否确定?因为它被标记为VB.Net,并且修订历史记录没有显示VBA作为问题的一部分。如果你是对的,我们需要,我们需要修复标签。这个答案似乎并没有给乔尔的答案增添任何东西。此外,请避免只回答代码问题。添加一些上下文来说明为什么或如何工作。
Dim myNumString As String = $"{myNum:00000}"
myNum.ToString("00000")