关于vb函数的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:35:43
Private Sub Command1_Click()
Dim a As Double, b As Double
a = Text1
b = Int(1E+18 * asd(a)) / 1E+18
Text2 = b
End Sub
Private Function asd(a)
asd = ((a + 100) * (a + 60)) / ((a - 35) * (7 * a + 9))
End Function

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub

像这样一个计算式,当我把上面的函数int 改为 cint 就会出现溢出错误,这是为什么呢? 那位大哥大姐来帮小弟解决一下, 谢谢了!

第一:楼上答案不知道是什么意思,乱回答,是来蹭分的?
第二:关于你说的益出错误原因如下:
类型转换函数CINT的返回值类型为integer(整型),其范围在-32768~+32767之间,如果传递给函数的参数超过转换目标数据类型的范围,将发生错误.
INT是一个函数,并不是一个类型转换函数,这是其与CINT的最大区别,它只是简单的返回参数的整数部分.
所以对于数值:122222222.5来说
CINT(...)将会发生益出错误,而INT则不会.
第三:向你提个建议:
上面的这些东西,MSDN中都有,并且MSDN中对于类型转换函数有个说明.所以说,最好的答案往往是在MSDN之中,关键在于你能否认真的去阅读!
-------------------------------------------------------
如有问题请到我的blog里留言,我将和你共同学习http://hi.baidu.com/privateblog

Public Function Cot(X As Double) As Double

Cot = 1 / Tan(X)

End Function

Public Function Sec(X As Double) As Double

Sec = 1 / Cos(X)

End Function

Public Function Csc(X As Double) As Double