重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
double是双精度 有效数值位52位 表示成指数的形式 即指数11位 即表示成
为科尔沁左翼等地区用户提供了全套网页设计制作服务,及科尔沁左翼网站建设行业解决方案。主营业务为做网站、网站制作、科尔沁左翼网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
所以180.89305用2进制表示是10110100.1110010010011110111011001011111110110001010110110101
即
180.89305在double中存在的实际数值是
1.01101001110010010011110111011001011111110110001010110110101 *2^7
取小数点后 52位有效值后 等于10进制的180.893049999999998
所及加最后变成了 1808930.99999999998
第一次当然输出近似值1808931
第二次int函数去掉了小数点后的数int就是只取整数的部位的不是四舍五入 所以少了1
Not一个数值实际上是对这个数值进行“非”运算,即转换为2进制,0变为1,1变为0,你可以这样试:
For i = 1 To 10
s = i
debug.print not (i Mod 5 )
Next
这样可以看到not (i Mod 5 )这个表达式究竟等于多少。
按照你的想法,应该这样做结果才是对的:
If Not (i Mod 5 0) Then
VB6中Mod 运算符功能是两数相除求余。
如果两数中带小数,Mod 会先四舍六入取整,再按整数求余,余数带小数的话只取整数部分。
注意,如果有书说四舍五入,是错的。
在 VB6 用的是所谓银行家算法,是四舍六入:
小数部分比 0.5 小就舍(例如0.4,0.49999),比 0.5 大就进(例如0.6,0.500001),
刚好是 0.5 可能舍可能进,如果小数点前面是偶数就舍(例如2.5 得 2),是奇数就进(例如3.5 得 4)。
Mod 运算符在VB.NET中有改动,余数可以带小数。
以上资料来自:
所以2.5 mod 2结果是0
VB中使用MOD运算求两个整数相除的余数:
例如:求27除以5的余数,最简单的方法是
27 Mod 5 就可以了。
也可以用
27 - 27 \ 5 * 5 来求得。
其中 \ 是整数除法的运算符。27 \ 5 的值就等于27除以5的商的整数部分(19 \ 10 = 1)
即是5。由于 \ 和 * 的运算优先组长相同,所以,
27 - 27 \ 5 * 5
=27 - 5 * 5
=27 - 25
=2
好吧,我承认,我没见过。不过不排除是用VB.NET所写的插件。因为VB6是不支持运算符重载的。既然能够自定义运算符,那肯定是跟插件有关。或许他是用宏,或者其他什么东西完成的。。。我没看见过,所以不敢妄下结论。希望你能把这个文件发到我的邮箱里。。。。如果有的话。。。。我邮箱xtnxing@sina.com,可以研究研究。
VB中通过Mod方式求余比如:Dim r as Integer '定义一个整型变量r
r = 50 Mod 4 '求50除以4的
余数
,赋值给变量r补充:VB中取余
运算符
是Mod