主题:请教:“运算数值时,出现溢出的问题”
喜欢QB
[专家分:200] 发布于 2006-04-13 18:10:00
运行下列程序
PRINT 33*32*31*30
系统提示:“溢出”
如果将程序修改一下
LET a=33:b=32:c=31:d=30
PRINT a*b*c*d
这样就可以运算,这是为什么?
谢谢指教
回复列表 (共4个回复)
沙发
moz [专家分:37620] 发布于 2006-04-13 20:35:00
你直接使用 print 33*32*31*30
的时候,QB为了计算准确和速度,
那运算对象都当成短整形类型来参加运算
得数数值过大,就造成溢出了。
你利用变量 a,b,c,d的时候,QB默认为单精度变量,
运算对象是单精度变量,得数的范围得以扩大成单精度,
所以就可以运算了。
只要有一个计算对象是高精度或范围大的,都会向高转换的。
你试试下面的例子就会明白了。
print 33! * 32! * 31! * 30!
print 33! *32*31*30
print 33@ *32*31*30
板凳
喜欢QB [专家分:200] 发布于 2006-04-15 04:33:00
谢 谢 指 点
3 楼
品花人 [专家分:10] 发布于 2006-04-21 16:09:00
33@ 什么意思?没见过这种型阿
4 楼
maxumi [专家分:2200] 发布于 2006-04-25 15:22:00
是33&吧?
我来回复