vb中的MOD问题!急~~~~~~~~~~~~~~~~~~~~~~~

来源:百度知道 编辑:UC知道 时间:2024/05/17 07:50:01
请问各位高手:
64MOD2.499为什么是0 而64MOD2.501是1
我看见有人说奇进偶不进 也有人说以0.5为界限 还有人是分区域赋值!`

各位高手啊~!!!你说设计VB的人咋就那么不爽快啊!!!怎么我在网上找那么久就找不到相关的答案啊???请哪位高手一定要给我们一个最全面的规律哈!!!!!!
我看见好多人也找不到相关的答案啊!!!
我分全给你了!!!!!!!!
希望是原创!鄙视灌水!!!

是四舍六入五逢双
.4当然是舍的
.6当然是入的
问题出在.5上,要看哪边靠近偶数,会朝偶数上舍或入

例子:
?round(0.4)
0
?round(0.6)
1
?round(0.5)
0
?round(1.5)
2

据说这比四舍五入更为科学,大量的计算中,一味的四舍五入会使结果趋向大数,而四舍六入可以做一定程度的纠偏

你可以搜索一下“四舍六入”,找到更多更为准确的说法

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是求余运算 是针对整数的
如果mod表达式中有浮点数

则 浮点数字四舍五入成整数(所谓四舍五入,只看小数点后第一位就可以了(这位<=4就舍去 >=5就进位)
2.499 小数点后第一位是4 舍去; 2.501小