String VBA字符串转换为不带舍入的整数
我想将String VBA字符串转换为不带舍入的整数,string,vba,integer,decimal,String,Vba,Integer,Decimal,我想将字符串转换为整数,并保留小数点。 我尝试了多种方法,如Foramat和CInt,但所有这些方法最终都舍入了我的值 我的代码是: Dim posZ As Integer Dim TestZ As Integer Dim strTestZ As String Dim TestZold As Integer For i = 1 To tllength posZ = InStr(tlmold(i), "Z=") strTestZ = Mid(tlmold(i), posZ + 2, 5)
字符串
转换为整数
,并保留小数点。我尝试了多种方法,如
Foramat
和CInt
,但所有这些方法最终都舍入了我的值
我的代码是:
Dim posZ As Integer
Dim TestZ As Integer
Dim strTestZ As String
Dim TestZold As Integer
For i = 1 To tllength
posZ = InStr(tlmold(i), "Z=")
strTestZ = Mid(tlmold(i), posZ + 2, 5)
TestZ = Format(strTestZ, "0.0000")
If TestZold = TestZ Or (TestZold - TestZ) > 0.02 Or (TestZ - TestZold) > 0.02 Then
countLip = countLip + 1
End If
TestZold = TestZ
Next I
e、 g.数组tlmold()
中的strestz
的第一个值为0.085,第二个值为0.097我想比较一下
提前感谢整数是一个整数变量。改用double。整数是一个整数变量。改为使用double。“我想将字符串转换为整数并保留小数点。”-不可能,整数是“Ganz Zahl” 然而,我认为这不是你的问题。我注意到您来自德国,因此您显然遇到了逗号分隔符的问题,这在德国是一个逗号。在美国和VBEditor中,它是一个点。因此,您必须将您的输入转换为预期的内容<代码>替换()就是这样做的 你自己看看:
Public Sub TestMe()
Dim inputA As String
Dim convertedNumber As Double
inputA = "0.085"
convertedNumber = CDbl(inputA)
Debug.Print convertedNumber
inputA = Replace(inputA, ".", ",")
convertedNumber = CDbl(inputA)
Debug.Print convertedNumber
End Sub
第一次打印时,您将获得85
,第二次打印时,您将获得0085
,正如预期的那样。“我想将字符串转换为整数并保留小数点。”-不可能,整数是“Ganz Zahl”
然而,我认为这不是你的问题。我注意到您来自德国,因此您显然遇到了逗号分隔符的问题,这在德国是一个逗号。在美国和VBEditor中,它是一个点。因此,您必须将您的输入转换为预期的内容<代码>替换()就是这样做的
你自己看看:
Public Sub TestMe()
Dim inputA As String
Dim convertedNumber As Double
inputA = "0.085"
convertedNumber = CDbl(inputA)
Debug.Print convertedNumber
inputA = Replace(inputA, ".", ",")
convertedNumber = CDbl(inputA)
Debug.Print convertedNumber
End Sub
第一次打印时,您将获得
85
,第二次打印时,您将获得0085
,正如预期的那样。输入带有“点”。系统是建立在英语,但感谢的想法!我得到“0.085”和“85”@rosi97-如果你问一个美国人你认为他/她会得到什么?@rosi97-如果你从代码中得到两个不同的值,你的系统不在英语设置中。VBEditor采用英语设置,但Windows使用逗号和小数分隔符。这可能是一个问题,如果您是从外部文件读取,或者如果您是在Excel中编写VBA公式。好的,那么我不知道这是从哪里来的。键盘输入语言为“英语(美国)”。不管怎样,代码现在对我来说很好。谢谢你的信息。输入带有“点”。系统是建立在英语,但感谢的想法!我得到“0.085”和“85”@rosi97-如果你问一个美国人你认为他/她会得到什么?@rosi97-如果你从代码中得到两个不同的值,你的系统不在英语设置中。VBEditor采用英语设置,但Windows使用逗号和小数分隔符。这可能是一个问题,如果您是从外部文件读取,或者如果您是在Excel中编写VBA公式。好的,那么我不知道这是从哪里来的。键盘输入语言为“英语(美国)”。不管怎样,代码现在对我来说很好。谢谢你的信息。