excel vba 中关于运算符“\”

Sub inter() ris = 16 \ 2.5 Range("a1") = ris End Sub 为什么A1输出8啊?不是6.4然后向下取整为6吗? 提前谢谢了

\
表示整除除法,取商的整数部分
但是,它会在做除法运算前,会先把浮点数字四舍五入取整(注意,这里的四舍五入是以商的情况对操作数四舍五入)
16\2.5,16/2.5的值为6.4,所以可以看作是16\2,值自然是8
而10\3.5,10/3.5的值约为2.86,所以可以看作是10\4,值自然是2

建议使用Fix或者Int函数取整
如果要四舍五入的话可以使用Mod函数取余,判断余数与除数一半的大小关系进行四舍五入
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-02
找到答案了,这个书上没有备注

\前后的数,必须在计算前进行“四舍五入”,但其实是“四舍六入”,当小数部分为0.5就要遵循如下原则

双数舍弃,奇数入位,看下面
1.5 2
2.5 2
3.5 4
4.5 4

还有一点:正数向上取,负数向下取

记住这个就好了,这个书上没详细说,还有很多和常理不同的地方,所以没一一举明

如果你想知道其他特殊情况可以追问我,那些更奇怪些,你可以试试本回答被提问者采纳
第2个回答  2013-01-02
“\”在进行除法运算之前,数值表达式 先 舍去小数部分追问

但是比如输入10\3.5,,,就输出2,好奇怪

第3个回答  2013-01-02
2.5 3.5 的0.5是舍还是入有偶然性,? 16\2.49 = 8 ? 16\2.51 = 5 ? 10\3.49 = 3 ? 10\3.51 =2
从中可以看出分母基本是4舍5入的,0.5的舍入不好把握,还是用其他办法来计算为好。
第4个回答  2013-01-02
楼主:
除法应该用 / 而不是有 \ 哦!
向下取整,如果包含负数,只是把小数部分去掉的话,用VBA函数 Fix 。
相似回答