2010-04-01 69 views
4

在一個報告中,我有下面的代碼字段:我如何總是將十進制值整數到最接近的整數值?

=Sum([PartQty]*[ModuleQty]) 

例結果2.12.6。我需要的是這些價值加起來的價值3。我怎樣才能改變我的域代碼來總結當前表達式的結果?

+0

對不起薩姆。 一直沒有使用這個網站,你如何投票並接受答案,你是第一個提到這個問題的人。 你一直很有幫助。 Shaun – Shaun 2010-04-01 13:35:52

+1

沒問題:)。點擊答案左上方數字上方或下方的箭頭。點擊向上箭頭表示答案是有用的,向下箭頭如果不是。如果你失望地說出原因,請留下評論。點擊您接受答案旁邊的勾號符號作爲您問題的答案。它會變綠以表明它是可接受的解決方案。 – 2010-04-01 13:42:47

回答

1

你可以做

=Int(Sum([PartQty]*[ModuleQty]))+1 

我想。這將得到總和(2)的整數部分,然後加1.你可能需要更聰明一點,因爲即使總和恰好爲2,這可能會給你3,這可能不是你想要的。

沒有測試,但這些方針的東西可能會奏效(訪問語法是不是很大,但應該給你正確的想法):

Iif(Sum([PartQty]*[ModuleQty])-Int(Sum([PartQty]*[ModuleQty]))=0, 
    Sum([PartQty]*[ModuleQty]), 
    Int(Sum([PartQty]*[ModuleQty]))+1) 
+0

嗨,山姆。 對於你的第一個想法,你是對的,如果它的值是2,它將舍入爲3. 將很快嘗試下一個想法。 乾杯 – Shaun 2010-04-01 10:51:09

+0

嗨,山姆。 我試過新的代碼,我不斷收到有關逗號的錯誤消息。 Shaun。 – Shaun 2010-04-01 12:58:09

+0

喜山姆 我更換了然後第一個逗號和第二個逗號,=仍無法正常工作得到錯誤 – Shaun 2010-04-01 13:00:25

4

這是一個古老的訪問技巧,我學到了很長一段時間之前,它使用Access處理小數負數的方式。試試這個:

-Int(-[DecimalValue]) 

這很奇怪,但它總是將您的數字四捨五入到最接近的整數。

+0

非常有趣 – Fionnuala 2012-12-20 19:48:21

+0

是的,我同意。我不確定這是否是一個錯誤,但它已經運行了多年,事實上,我之前在Access 2010中使用它。所以它仍然有用。此外,只要你理解語法的目的,它就非常簡潔,它是表達你想要「收集」一個數字的最簡單方式。 – RLH 2012-12-20 19:54:29

+0

我相當確信它不是一個錯誤,它是四捨五入的,不是每一種情況? '-1.4 = -2','1.4 = 1' – Fionnuala 2012-12-20 20:01:13

1

測試此項: 圓(y​​ournumber + 0.5,0)

相關問題