2010-05-24 47 views

回答

9

乘以4,舍入到最接近的整数,除以4?

+0

在Jet/ACE和VBA中,Round()函数使用银行家的舍入。这会对结果产生意想不到的影响吗?此外,人们对负数的期望是什么,Jet/ACE和VBA对负数的处理是否符合这些预期? – 2010-05-25 18:33:14

+0

银行家的四舍五入应该没问题。如果你有-1.125,就是-4.5的4倍,它变成-4,变成-1。 -1.375轮另一路,最高-1.5。他们交替,这是银行家的四舍五入应该完成的。 0.375四舍五入到0.5平衡0.625四舍五入到0.5。 0.875四舍五入至1.0平衡由1.125四舍五入到1.0。如果你正在谈论0.01(美分)的倍数,那甚至不是问题。 – Vagrant 2010-05-26 19:29:20

+0

在某些情况下(例如贷项凭证),您不希望-4.5舍入到-4而是-5。 Access/Jet/ACE四舍五入在数字线上(正向),而不是绝对数量,你必须小心(因此我的评论)。 – 2010-05-26 22:26:33

3

有一种普遍的方法是:

  • 乘你的电话号码由4
  • Round为最接近的整数。
  • 除以4

在SQL:

ROUND(column * 4)/4 
-2

我不知道确切的功能名称,但基本上你用地板(4 * X)/ 4。楼层可能被称为int,to_int或类似的东西。

+0

我的不好,绕到最近的整数,不要用floor。 – 2010-05-24 22:02:50

+0

抛开错误的答案,但哪些版本的Access实现Floor()? – 2010-05-25 18:23:42

相关问题