如何始终将十进制值四舍五入到最接近的整数值?

Sha*_*aun 4 ms-access ms-access-2003

在报告中,我具有以下字段代码:

=Sum([PartQty]*[ModuleQty])
Run Code Online (Sandbox Code Playgroud)

示例结果为2.12.6。我需要的是将这些值四舍五入到的值3。如何更改域代码以始终将当前表达式的结果四舍五入?

RLH*_*RLH 5

这是我很久以前学到的一个古老的Access技巧,它利用Access处理小数负数的方式。尝试这个:

-Int(-[DecimalValue])
Run Code Online (Sandbox Code Playgroud)

这很奇怪,但是它将始终将您的数字四舍五入到最接近的整数。


Sam*_*der 1

你可以做

=Int(Sum([PartQty]*[ModuleQty]))+1
Run Code Online (Sandbox Code Playgroud)

我认为。这将得到总和 (2) 的 Int 部分,然后加 1。您可能需要更聪明一点,因为即使总和恰好是 2,这也可能给您 3,这可能不是您想要的。

没有测试它,但沿着这些思路的东西可能会起作用(访问语法不是那么好,但应该给你正确的想法):

Iif(Sum([PartQty]*[ModuleQty])-Int(Sum([PartQty]*[ModuleQty]))=0,
     Sum([PartQty]*[ModuleQty]),
     Int(Sum([PartQty]*[ModuleQty]))+1)
Run Code Online (Sandbox Code Playgroud)