Forms 如何生成一个告诉VB6您';你输入的不是整数吗?

Forms 如何生成一个告诉VB6您';你输入的不是整数吗?,forms,vb6,Forms,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.

简介:大家好!我是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中像在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

选项显式
专用子BTC_单击()
调暗A为长,N为长,D为长,R为长,F为长
A=GetFrac(txtiniterm)
N=GetFrac(txtTermint)
D=GetFrac(txtFinterm)
R=GetFrac(txtTermint)
F=N/2*(2*A+(N-1)*D)
lblOutput.Caption=F
端接头
公共函数GetFrac(ByVal S作为字符串)作为Double
GetFrac=0“错误时默认返回”
如果InStr(“/”)=0,则GetFrac=Val(S):退出函数
Dim P()作为字符串,N作为双精度,D作为双精度
P=拆分(S,“/”)
如果UBound(P)1,则退出函数'bad input--multiple/'
N=Val(P(0))
D=Val(P(1))
如果D=0,则退出函数'div by 0
GetFrac=N/D
端函数

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