# Re: 那每输入一个数字要先在转换才能相乘吗？变数怎么办？

Posted by Mouse on November 21, 1999 at 17:17:22:

In Reply to: Re: 那每输入一个数字要先在转换才能相乘吗？变数怎么办？ posted by Tim on November 21, 1999 at 12:58:51:

: : AAA = CDbl(365) * CDbl(24) * CDbl(60) * CDbl(60) '值等于31536000

: 若改成以下还是溢位，哪数字如何相乘，难道输入一个数字要先在转换吗？连以下先定义好之数值相乘都有误，请高人指点到底哪里错？

: Dim AAA As Double '不管long ,Single or Double都是错的
: Dim BBB As Integer
: Dim CCC As Integer
: Dim DDD As Integer
: BBB = 365
: CCC = 24
: DDD = 60
: AAA = BBB * CCC * DDD * DDD
: Text1.Text = AAA

因为VB会根据你的资料型别来产生同样的型态的记忆体暂存运算结果
就是说bbb,ccc,ddd是integer型别,VB会产生一个integer型态的记忆体
来存运算结果,但是你将bbb*ccc*ddd*ddd已经超过integer的范围,所以会
产生溢位!
所以老话一句
先转型别再运算
AAA = CDbl(BBB)* CDbl(CCC) * CDbl(DDD) * CDbl(DDD)

Follow Ups:

- Re: 那每输入一个数字要先在转换才能相乘吗？变数怎么办？ AOK(帝王世纪) 22:13:09 11/22/99 (1)
  - 谢谢各位的指点！(无内文) Tim 10:49:19 11/23/99 (0)