在VB中运用模运算(mod)进行求余数。
成都创新互联专注于企业成都全网营销推广、网站重做改版、沈丘网站定制设计、自适应品牌网站建设、H5建站、电子商务商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为沈丘等各大城市提供网站开发制作服务。
对于整型数a,b来说,取模运算或者求余运算的方法都是:
1、求 整数商: c = a/b;
2、计算模或者余数: r = a - c*b。
求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入;而取模运算在计算c的值时,向负无穷方向舍入。所谓向0方向舍入,就是以小数点为界限,直接将小数部分去掉。如(Int)-1.324=-1(亦叫截断法);
而向负无穷方向舍入,就是最终结果比真实值更小。如(Int)-1.324=-2;(int此处是强制转换数据类型)注意c是指商。
扩展资料
通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用’%’符号表示取模或者求余运算。在这里要提醒大家要十分注意当前环境下’%’运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的。
求模运算和求余运算在第一步不同: 取模求余运算在取c的值时,向0 方向舍入(fix()函数);注:fix()函数是MATLAB中的一种取整函数、截断函数,直接截取数字的整数部分。而求余取模运算在计算c的值时,向无穷小方向舍入(floor()函数)。
注:floor()函数为向下取整的函数。
代码分析:
Math.Floor:返回小于或等于指定数字的最大整数。
Fix:返回数字的整数部分。
Math.Floor 和 Fix 函数都移除 Number 的小数部分并返回得到的整数值。
Math.Floor 和 Fix 函数之间的区别在于:如果 Number 为负,则 Math.Floor 返回小于或等于 Number 的第一个负整数,而 Fix 返回大于或等于 Number 的第一个负整数。例如,Math.Floor 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。
你的要求:如果你的要求是直接舍去,那么应当采用Fix方法,考虑到时负数的情况,那么采用Math.Floor将会出现非预期的结果。
测试结果:见附图。
欢迎交流。
使用Math.Round(),注意返回值可能为Double或Decimal。
如果取整,第二个参数不填或者填0
默认采用 四舍六入五成双,如果想四舍五入,请采用MidpointRounding.AwayFromZero作为第三个参数
Dim 数字 As Double = 2.45
Dim r1 As Double = Math.Round(数字, 1, MidpointRounding.ToEven) ' r1 = 2.4 四舍六入五成双
Dim r2 As Double = Math.Round(数字, 1, MidpointRounding.AwayFromZero) ' r2 = 2.5 四舍五入