代码之家  ›  专栏  ›  技术社区  ›  rosi97

VBA字符串到整数,无舍入

  •  0
  • rosi97  · 技术社区  · 6 年前

    我想转换一个 String 进入 Integer 保留小数点。
    我尝试了很多事情,比如 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.的第一个值 strTestZ 在阵列中 tlmold() 可能是 0.097 .
    我想比较一下。。

    提前感谢

    2 回复  |  直到 6 年前
        1
  •  2
  •   donCalculator    6 年前

    整数是整数变量。改用double。

        2
  •  2
  •   Vityata    6 年前

    " 我想把一个字符串转换成整数并保留小数点。 “-不可能,整数为“Ganz Zahl”。

    然而,我认为这不是你的问题。我注意到您来自德国,因此您显然遇到了逗号分隔符的问题,这是德国的逗号。在美国和VBEditor中,它是一个点。因此,您必须将您的输入转换为预期内容。 Replace() 就是这样做的。

    亲自看看:

    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 第二次,你会得到 0,085 ,如预期。