以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]被除数不能为"0"的判断  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1906)

--  作者:狐哥
--  发布时间:2009/2/23 17:05:00
--  [求助]被除数不能为"0"的判断
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "币制","USD","HKD","RMB"
        If dr.IsNull("币制") Then
            dr("利润") = Nothing
        Else
            Dim dr1,dr2,dr3 As DataRow
            with datatables("汇率表")
                dr1 = .Find("源币制 = \'USD\'and 折算币制 = \'" & dr("币制") & "\'")
                dr2 = .Find("源币制 = \'HKD\'and 折算币制 = \'" & dr("币制") & "\'")
                dr3 = .Find("源币制 = \'RMB\'and 折算币制 = \'" & dr("币制") & "\'")

          
      dim s As String = dr("USD") & dr1("折算符") & dr1("兑换率")
                dim ss as string = dr("HKD") & dr2("折算符") & dr2("兑换率")
                dim sss as string = dr("RMB") & dr3("折算符") & dr3("兑换率")
                dr("利润") = eval(s)+eval(ss)+eval(sss)

            End With
        END IF
End Select

请看上面蓝色公式

\'如果dr("USD") = 0  , dr1("折算符")  = / (除号) 则此公式为: 0 / XX数.第一次打开系统时,出现一个错误提示.就是 0/ 6.8
(因为0不能作被除数)
求:
dr(\'usd\') = 0时,  EVAL(S)为0,其余类推.dr(\'HKD\') = 0时,  EVAL(SS)为0 ,dr(\'RMB\') = 0时,  EVAL(SSS)为0
[此贴子已经被作者于2009-2-23 17:05:35编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/2/23 17:09:00
--  
0/xx可以的
xx/0是不行的

这个只有加入判断了,如果是0,采用另外的计算或赋值方式。
--  作者:狐哥
--  发布时间:2009/2/23 17:41:00
--  
以下是引用狐狸爸爸在2009-2-23 17:09:00的发言:
0/xx可以的

只要这个可以就行了,呵呵!