标题: [问题求助] VBS整除的溢出错误? [打印本页]
作者: wankoilz 时间: 2013-3-12 15:49 标题: VBS整除的溢出错误?
这个整除总是溢出,还有mod也是。其他除法、求幂、加法等都没问题,不知道是怎么回事?- a=3194548456
- msgbox a\2
- 'msgbox a mod 2
- 'msgbox a/2
- 'msgbox a^2
复制代码
作者: Demon 时间: 2013-3-12 16:49
http://msdn.microsoft.com/en-us/ ... x%28v=vs.84%29.aspx
Before division is performed, numeric expressions are rounded to Byte, Integer, or Long subtype expressions.
作者: wankoilz 时间: 2013-3-12 17:24
本帖最后由 wankoilz 于 2013-3-12 17:49 编辑
难道整除最大只支持长整型的2147483647吗,难怪溢出了,还有mod运算也是这个情况,但帮助文档却没说明。
这种情况怎么处理呢?
作者: Demon 时间: 2013-3-12 17:54
难道整除最大只支持长整型的2147483647吗,难怪溢出了,还有mod运算也是这个情况,但帮助文档却没说明。
这 ...
wankoilz 发表于 2013-3-12 17:24
http://msdn.microsoft.com/en-us/library/basszbdt%28v=vs.84%29.aspx
If number1 or number2 are floating point numbers, they are first rounded to integers.
作者: wankoilz 时间: 2013-3-12 18:28
本帖最后由 wankoilz 于 2013-3-12 18:40 编辑
integer不是更小了……那大数的整除和求模咋办呢,给个提示吧!(我看的中文帮助文档)
作者: Demon 时间: 2013-3-12 19:36
integer不是更小了……那大数的整除和求模咋办呢,给个提示吧!(我看的中文帮助文档)
wankoilz 发表于 2013-3-12 18:28
中文帮助文档是这么写的:
模数或余数。运算符执行 number1 除以 number2 操作(浮点数四舍五入为整数)并只返回余数作为 result。例如,在下面的表达式中, A(为 result)等于 5。
A = 19 Mod 6.7
如果任一表达式为 Null,则 result 也为 Null。任一表达式为 Empty 时按 0 来处理。
作者: wankoilz 时间: 2013-3-12 19:45
好吧。正数整除的话,还可以用/,再fix()或int()代替,但是求模怎么想办法突破integer的限制呢,请指教。
作者: Demon 时间: 2013-3-12 23:49
好吧。正数整除的话,还可以用/,再fix()或int()代替,但是求模怎么想办法突破integer的限制呢,请指教。
wankoilz 发表于 2013-3-12 19:45
被除数 = 商 * 除数 + 余数
小学数学不用我教你吧
作者: wankoilz 时间: 2013-3-13 09:54
本帖最后由 wankoilz 于 2013-3-13 11:10 编辑
忽略本楼!
作者: wankoilz 时间: 2013-3-13 09:56
本帖最后由 wankoilz 于 2013-3-13 11:11 编辑
还是只能这样……好吧
作者: BAT-VBS 时间: 2013-3-13 10:46
Python用户表示压力不大
$ python -c "print 3194548456/2"
1597274228
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |