【问题标题】:How can I make a code that tells VB6 that tells VB6 that you're inputting something other than Whole numbers?我如何制作一个告诉 VB6 的代码,告诉 VB6 你输入的不是整数?
【发布时间】:2021-04-27 14:51:46
【问题描述】:

简介:大家好!我是 VB6 的新手!如何编写一个告诉 VB6 的代码,告诉 VB6 你输入的不是整数?

详情:我正在做一个算术级数计算器(我认为不需要代码?但我只是提供以防万一。)这是我的代码:

Option Explicit
Private Sub btCalc_Click()
    Dim A As Long
    Dim N As Long
    Dim D As Long
    Dim R As Long
    Dim F As Long
    
    A = Val(txtInitterm.Text)
    N = Val(txtTermint.Text)
    D = Val(txtFinterm.Text)
    R = Val(txtTermint.Text)
    
    F = N / 2 * (2 * A + (N - 1) * D)
    
    lblOutput.Caption = F
    
End Sub

我想通知或告诉 VB6 我输入的是分数,而不是整数,并使用该分数进行运算。

注意: VBA 中的字符串分数到值这不能回答我的问题...:D

谢谢大家帮助我!非常感谢。

【问题讨论】:

  • 我认为没有办法告诉 VB6 TextBox 包含分数,但您可以假设 是这种情况并做出相应的回应。
  • Long 是整数类型。您可能想使用SingleDouble 而不是Long
  • 你学习VB6有什么原因吗?它现在已经过时了,最后一次发布是在 20 多年前。如果可以的话,学习 VB.Net 会更好吗? (或者更好的 C#)
  • @Slugsie 我也一直很好奇!然而,VB6 仍然有一个庞大的代码库正在维护中,所以这可能是一个原因。
  • 我只是觉得我想在VB6中编码......

标签: forms vb6


【解决方案1】:

Vb6 中没有 Application.Evaluate(...) 像 VBA 中那样,所以你必须像“VBA 中的字符串分数到值”中的“问题”那样做。将逻辑提取到函数中以供重复使用,并将Val(...) 调用替换为函数以供使用。

尽管您可能希望在明显的数学错误情况下提供更好的错误处理,但以下内容可能会起作用。我只是返回零并用注释标记它们。

Option Explicit
Private Sub btCalc_Click()
    Dim A As Long, N As Long, D As Long, R As Long, F As Long
    
    A = GetFrac(txtInitterm)
    N = GetFrac(txtTermint)
    D = GetFrac(txtFinterm)
    R = GetFrac(txtTermint)
    
    F = N / 2 * (2 * A + (N - 1) * D)
    
    lblOutput.Caption = F
    
End Sub


Public Function GetFrac(ByVal S As String) As Double
  GetFrac = 0         ' default return on error
  If InStr(S, "/") = 0 Then GetFrac = Val(S): Exit Function
  Dim P() As String, N As Double, D As Double
  P = Split(S, "/")
  If UBound(P) <> 1 Then Exit Function  ' bad input -- multiple /'s
  N = Val(P(0))
  D = Val(P(1))
  If D = 0 Then Exit Function ' div by 0
  GetFrac = N / D
End Function

【讨论】:

  • 感谢您回答我的问题,它回答了我的问题,谢谢! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多