回 帖 发 新 帖 刷新版面

主题:长整型转化字符串的疑惑

2^30 是 十位数

m& = 2 ^ 30
n= len(str(m&)) -1
print n


n = len(str(2^30)) - 1
print n

输出的结果前者为10正确, 后者为什么为13呢??

回复列表 (共3个回复)

沙发

你的str()在QB里是不对的
应该是str$()吧?

当你用的是 str$(m&) 的时候,m&是一个长整形的值=1073741824   (字符长度为10)
当你用的是 str$(2^30)的时候,(2^30)默认是一个单精度值=1.073742E+09 (字符长度为12)

不过你可以用后缀把默认的单精度改成长整形数值
print len(str$(2&^30&))-1

板凳

真是抱歉啊,我是新手
写的漏洞很多!
现在明白了!这个问题回答的真不错
真要谢谢你了

3 楼

呵呵

我来回复

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