首页
社区
课程
招聘
[求助]PB同VB计算结果不同呀!
发表于: 2006-4-21 11:07 4344

[求助]PB同VB计算结果不同呀!

2006-4-21 11:07
4344
PB下的语句
A = string(long("1505417036") * 3 + 791004)

PB结果为:"222074816"

VB下的语句
A=Str(CLng("1505417036") * 3 + 791004)

VB结果为:"4517042112"

为什么会出现这种情况,我错在哪里了?怎么来解决?

请大家帮忙.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 211
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
把PB的long 改为ulong
2006-4-21 11:17
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
楼上正解,这是有符号长整数和无符号长整数的区别。
4517042112 And 2147483647 = 222074816
2006-4-21 12:26
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
最初由 小虾 发布
楼上正解,这是有符号长整数和无符号长整数的区别。
4517042112 And 2147483647 = 222074816


VB下 两个这么长的数 AND 算运会"溢出".
有没有其它方法呢?
2006-4-21 14:08
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个问题我也碰见过,最后没有办法用PB写的,它们两个的长整型计算结果却是不同。
2006-4-21 15:38
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
PB没有学过,在VB中可以用这个方法。
A = Trim(Str(CCur("1505417036") * 3 + 791004))
2006-4-21 15:48
0
雪    币: 236
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
PB代码写起来和VB差不多,会VB的人很容易上手。
2006-4-21 15:50
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 sixfor 发布
PB代码写起来和VB差不多,会VB的人很容易上手。


用PB又把VB写了一遍.在PB当中,窗口运行/预览都已经达到目标了.
但编译时出错:"This application needs a script for its open event"
2006-4-21 16:55
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 小虾 发布
PB没有学过,在VB中可以用这个方法。
A = Trim(Str(CCur("1505417036") * 3 + 791004))


我想得到PB当中的结果. 用CCur还是一样"4517042112".
2006-4-21 16:59
0
雪    币: 211
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 针锦菜 发布
我想得到PB当中的结果. 用CCur还是一样"4517042112".


朋友,"4517042112"才是正确的,错误的是PB
2006-4-21 23:34
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
VB溢出是应为他要保留准确值,其他语言不溢出是因为已经溢出了。
2006-4-22 21:21
0
游客
登录 | 注册 方可回帖
返回
//