1000*1000溢出????

libralibra 2004-11-05 12:52:46
Private Sub Command1_Click()
Dim n As Long
n = 1000 * 1000
Debug.Print n
End Sub

---------------
上述代码运行时报错,overflow,错误代码6

long表示的范围是多少啊?

÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
Long 包含 -2,147,483,648 到 2,147,483,647 之间的整数。
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷

对吗?
...全文
193 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
libralibra 2004-11-05
  • 打赏
  • 举报
回复
viena(vienna维也纳)(胡逸之-贱人第二)

谢谢,问题解决!

汗ing
viena 2004-11-05
  • 打赏
  • 举报
回复
Debug.Print 32768 * 1000就不会溢出了,因为32768是Long,表达式就是Long
viena 2004-11-05
  • 打赏
  • 举报
回复
怎么还不明白啊?说了和n没有关系!!!
执行1000*1000这个运算的时候,结果并不是直接放在n里面的,常数的数据类型是按存储空间最小,能表示1000的数据类型是Integer,两个都是Integer,表达式的数据类型也是Integer
libralibra 2004-11-05
  • 打赏
  • 举报
回复
那我不是指定n为long了吗?

÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
Long 包含 -2,147,483,648 到 2,147,483,647 之间的整数。
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷

n=1000*1000

应该可以了啊!
viena 2004-11-05
  • 打赏
  • 举报
回复
//Debug.Print 1000 * 1000

//仍然溢出,错误代码6
//overflow
所以和n没有关系啊
viena 2004-11-05
  • 打赏
  • 举报
回复
1,000,000 > 32,767 ,当然溢出了
viena 2004-11-05
  • 打赏
  • 举报
回复
默认是Integer,16位,范围 -32,768 到 32,767
libralibra 2004-11-05
  • 打赏
  • 举报
回复
Debug.Print 1000 * 1000

仍然溢出,错误代码6
overflow
libralibra 2004-11-05
  • 打赏
  • 举报
回复
这些数据类型不是表示的范围么?
1000不是long?

viena(vienna维也纳)(胡逸之-贱人第二) ,帮忙解答下,
我是低手,不好意思!
viena 2004-11-05
  • 打赏
  • 举报
回复
不信Debug.Print 1000 * 1000试试
viena 2004-11-05
  • 打赏
  • 举报
回复
n = 1000 * 1000
n是Long,1000 * 1000不是Long,在给n赋值以前已经溢出了
viena 2004-11-05
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim n As Long
Dim a As Long
a = 1000
n = a * a
Debug.Print n
End Sub
GGL123 2004-11-05
  • 打赏
  • 举报
回复
n = 1000! * 1000!

7,789

社区成员

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

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