大神们快看一下,我的这个vb程序运行时为什么显示是溢出?

qq_39403540 2018-04-20 08:53:39
Dim k1, k2, k3m, k4m, la3, la4, lam, ga, w3, w4, xf, ye, ctm, ctf, cfd, cl, fi1, fi2, fi3, fi4, fi3f, fi4f, fi5, wf, ad, r1, r2, m1, m2, f3, f4, a0, a1, a2, a4, b1, b2, b4, b5, G, B, C, nt3d, nt4d, nt1d, nt2d As Double

这一句显示溢出
b1 = r1 * r2 * (Exp(r1 * (xf - xe)) - Exp(r2 * (xf - xe))) / (r1 * Exp(r2 * (xf - xe)) - r2 * Exp(r1 * (xf - xe)))
求大神救救我吧!!!!!!!!!!!!!!
...全文
888 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdingyun 2018-05-21
  • 打赏
  • 举报
回复
溢出(错误 6),当赋值超出目标的限制时,就会发生溢出。 此错误有以下的原因和解决方法: 赋值、计算或数据类型的结果的转换太大,以致于不能在变量类型所允许的范围内表示出来。 赋值给足够表示值的范围的类型的变量上。 给属性的赋值超过属性能接受的最大值。 确保赋值适合属性的范围。 试图在计算中使用一个数字,并且该数字被强制为一个整数,但是结果超过了整数的范围,例如: Dim x As Long x = 2000 * 365 ' 错误: 溢出 要解决这个问题,请按如下方式键入该数字: Dim x As Long x = CLng(2000) * 365
「已注销」 2018-05-18
  • 打赏
  • 举报
回复
溢出多半就是除0了 没什么好说的,检查一下吧
赵4老师 2018-04-23
  • 打赏
  • 举报
回复
先将复合表达式手动拆解为尽量简单的分步表达式,再单步调试。
脆皮大雪糕 2018-04-22
  • 打赏
  • 举报
回复
首先,因为你偷懒,所有变量只有最后一个是doubule,其他都不是 报错的时候检查 (r1 * Exp(r2 * (xf - xe)) - r2 * Exp(r1 * (xf - xe))) 。不一定是0,还有可能是这个值非常小,总之,报错的时候把这个式子分解开来一步一步计算,看哪个步骤溢出了。再去检查数值或者逻辑是否正确。
脆皮大雪糕 2018-04-22
  • 打赏
  • 举报
回复
MD, 你啥值都不赋,那个除法就变成0/0 ,让然溢出。 另外式子里面的xe没有定义
笨狗先飞 2018-04-21
  • 打赏
  • 举报
回复
你省略了As Double的那些变量并不是double型的,你还是补补全声明 还有检查一下,(r1 * Exp(r2 * (xf - xe)) - r2 * Exp(r1 * (xf - xe))) 这一部分是不是结果为0了
小噤 2018-04-20
  • 打赏
  • 举报
回复
MsgBox 0 / 0

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧