• [VB]我的数值修约器,运行到这里卡了……

    Carneades Thu, 09 Apr 2009 12:09:27 +0000

    这是按照四舍六入五留双规则修约整数的程序。
    我编得很复杂,中间变量很多。
    但在运行的时候,卡在箭头指示的位置,我不知原因。(在此发问)
    另外,请看看我的那个If语句有没有错误,谢谢!
    如果谁有更简单的修约程序,或者有办法把编写可以修约小数的程序,欢迎交流!

  • # 1

    Francisco Thu, 09 Apr 2009 14:28:49 +0000

    你这个我运行着没有问题,只有当保留一位时候会出问题,因为b4=0了。
    另外,e1=0,2,4....可以用求余函数判断除2余数是否为零来判断奇偶
    其实没必要定义那么多变量,可以直接函数套用函数,比如下面的代码:Private Sub Command1_Click()
    Dim a As String, b As Integer, c, d, e, f As Single
    a = Trim(Text1.Text)
    b = Text2.Text
    a1 = Val(Mid(a, 1, b))
    c = Val(Mid(a, b + 1, 1))
    d = Val(Mid(a, b + 2, 1))
    e = Val(Mid(a, b - 1, 1))
    If c1 <= 4 Then
    f = a2
    Else
    If e1 Mod 2 = 0 And c = 5 And d = 0 Then
    f = a1
    Else
    f = a1 + 1
    End If
    End If
    Print f
    End Sub

  • # 2

    原来余数是这么用的啊!

    Carneades Thu, 09 Apr 2009 15:57:10 +0000

    您这“Print f “到我这好像不行。
    在这里是不是应该
    Text2.text=str(f)
    呢?

  • # 3

    Francisco Thu, 09 Apr 2009 17:12:51 +0000

    抱歉,我自己测试时候图省事直接用print了,而且a1忘记声明了
    学校的网速好慢,竟然连击了。

  • # 4

    Francisco Thu, 09 Apr 2009 17:19:55 +0000

    另外,你这个用于修约整数时候把后面的0全给丢掉了,应该给补上。如果要修约小数的话只要找到小数点的位置就可以了。

  • # 5

    Carneades Sun, 12 Apr 2009 20:17:35 +0000

    您那是VB6.0吗?我这里怎么运行得容易卡?
    我这两个周末事情特多,暂时不能改进我的程序了。