回 帖 发 新 帖 刷新版面

主题:请教:“运算数值时,出现溢出的问题”

运行下列程序
PRINT 33*32*31*30
系统提示:“溢出”

如果将程序修改一下
LET a=33:b=32:c=31:d=30
PRINT a*b*c*d
这样就可以运算,这是为什么?
谢谢指教

回复列表 (共4个回复)

沙发

你直接使用 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

板凳

谢 谢 指 点

3 楼


 33@ 什么意思?没见过这种型阿

4 楼

是33&吧?

我来回复

您尚未登录,请登录后再回复。点此登录或注册