[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] VBS整除的溢出错误?

这个整除总是溢出,还有mod也是。其他除法、求幂、加法等都没问题,不知道是怎么回事?
  1. a=3194548456
  2. msgbox a\2
  3. 'msgbox a mod 2
  4. 'msgbox a/2
  5. 'msgbox a^2
复制代码

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.

TOP

本帖最后由 wankoilz 于 2013-3-12 17:49 编辑

难道整除最大只支持长整型的2147483647吗,难怪溢出了,还有mod运算也是这个情况,但帮助文档却没说明。
这种情况怎么处理呢?

TOP

难道整除最大只支持长整型的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.

TOP

本帖最后由 wankoilz 于 2013-3-12 18:40 编辑

integer不是更小了……那大数的整除和求模咋办呢,给个提示吧!(我看的中文帮助文档)

TOP

integer不是更小了……那大数的整除和求模咋办呢,给个提示吧!(我看的中文帮助文档)
wankoilz 发表于 2013-3-12 18:28


中文帮助文档是这么写的:

模数或余数。运算符执行 number1 除以 number2 操作(浮点数四舍五入为整数)并只返回余数作为 result。例如,在下面的表达式中, A(为 result)等于 5。
A = 19 Mod 6.7
如果任一表达式为 Null,则 result 也为 Null。任一表达式为 Empty 时按 0 来处理。

TOP

好吧。正数整除的话,还可以用/,再fix()或int()代替,但是求模怎么想办法突破integer的限制呢,请指教。

TOP

好吧。正数整除的话,还可以用/,再fix()或int()代替,但是求模怎么想办法突破integer的限制呢,请指教。
wankoilz 发表于 2013-3-12 19:45


被除数 = 商 *  除数 + 余数

小学数学不用我教你吧

TOP

本帖最后由 wankoilz 于 2013-3-13 11:10 编辑

忽略本楼!

TOP

本帖最后由 wankoilz 于 2013-3-13 11:11 编辑

还是只能这样……好吧

TOP

Python用户表示压力不大

$ python -c "print 3194548456/2"
1597274228

TOP

返回列表