VBA里面较大数字进行MOD运算溢出
答案:2 悬赏:0 手机版
解决时间 2021-04-13 05:30
- 提问者网友:無理詩人
- 2021-04-12 23:42
比如8293657327 mod 100,运行提示溢出,能怎么解决?
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-04-13 00:59
MOD,用来对两个数作除法并且只返回余数。
语法
result = number1 Mod number2
Mod 的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
number1 必需的;任何数值表达式。
number2 必需的;任何数值表达式。
说明
在进行 Mod 运算或求余数运算时,该运算符将 number1 用 number2 除(将浮点数字四舍五入成整数),并把余数作为 result 的值返回。例如,在下列表达式中,A (result) 等于 5。
A = 19 Mod 6.7
一般说来,不管 result 是否为一个整数,result 的数据类型为 Byte,Byte 变体、Integer、Integer 变体、Long 或一个包含 Long 的 Variant。任何小数部分都被删除。但是,如果任何一个 Null,类型的表达式出现时,result 都将是 Null。任何 Empty 类型表达式都作为 0 处理。
从以上的解释来看,MOD最大应该只支持LONG型变量,而LONG型变量其范围从 -2,147,483,648 到 2,147,483,647之间。而你的数数大于这个范围,所以显示溢出。这个是系统限制,应该没办法解决。不过可以用其它的取余数的方法,比如8293657327-INT(8293657327/100)*100
语法
result = number1 Mod number2
Mod 的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
number1 必需的;任何数值表达式。
number2 必需的;任何数值表达式。
说明
在进行 Mod 运算或求余数运算时,该运算符将 number1 用 number2 除(将浮点数字四舍五入成整数),并把余数作为 result 的值返回。例如,在下列表达式中,A (result) 等于 5。
A = 19 Mod 6.7
一般说来,不管 result 是否为一个整数,result 的数据类型为 Byte,Byte 变体、Integer、Integer 变体、Long 或一个包含 Long 的 Variant。任何小数部分都被删除。但是,如果任何一个 Null,类型的表达式出现时,result 都将是 Null。任何 Empty 类型表达式都作为 0 处理。
从以上的解释来看,MOD最大应该只支持LONG型变量,而LONG型变量其范围从 -2,147,483,648 到 2,147,483,647之间。而你的数数大于这个范围,所以显示溢出。这个是系统限制,应该没办法解决。不过可以用其它的取余数的方法,比如8293657327-INT(8293657327/100)*100
全部回答
- 1楼网友:山君与见山
- 2021-04-13 01:49
结果为2
mod是取余数运算,计算的是两个整数整除之后的余数。
17=3*5+2
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯