Public Function sb(ByVal ad As Integer)
sb = (6400 - 900) * ad / 1000 / 设置坐标量程.Text1.Text + 900
End Function输入参数时,设置坐标量程.Text1.Text =1
总提示错误6溢出错误,怎么回事啊??
多谢了!!!!!!!!!!!!!!
sb = (6400 - 900) * ad / 1000 / 设置坐标量程.Text1.Text + 900
End Function输入参数时,设置坐标量程.Text1.Text =1
总提示错误6溢出错误,怎么回事啊??
多谢了!!!!!!!!!!!!!!
sb = (6400 - 900)
sb = sb * ad
sb = sb / 1000 / 设置坐标量程.Text1.Text + 900
End Function
(6400 - 900) * ad
这个表达式溢出
因为三个都是Integer,表达式的临时运算结果是放在Integer型里面
而相乘结果超出了Integer的范围(好像是-32,768 到 32,767)
只要三个任一个改为Long就会使表达式为Long
6400与900默认都是用Integer,加个表示Longde后缀也是可以的
sb = (6400 - 900) * ad / 1000 / 设置坐标量程.Text1.Text + 900
End Function
sb = (6400 - 900) * ad / 1000 / val(设置坐标量程.Text1) + 900
End Function
sb = CLng(6400 - 900) * ad / 1000 / 设置坐标量程.Text1.Text + 900
End Function
(6400 - 900) * ad 溢出
你先声明一个Double变量
然后用它保存(6400 - 900) * ad 的结果再操作
up
jf