vb编程问题

Private Sub Form_Activate()s = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10Print sEnd Sub怎么不行?
2025-06-22 10:11:02
推荐回答(1个)
回答1:

这里的赋值式没错,仅是在VB运行时1,2 - 8,9,10这些值的精度未定,按整数运算,变量s运算中储存位数缩短,造成溢出(错误 6),属VB的一个BUG,解决方法,对赋值式中的第一个数1后加!号标识成Single 数据类型或加#号标识为Double 数据类型,以保证变量s在运算中的精度:
Private Sub Form_Activate()
s = 1! * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10
Print s
End Sub