Come posso sempre fino rotonda valori decimali al valore intero più vicino?
-
23-09-2019 - |
Domanda
In un report ho il seguente codice per un campo:
=Sum([PartQty]*[ModuleQty])
Esempio risultati sono 2.1
e 2.6
. Che cosa ho bisogno è per questi valori fino intorno al valore di 3
. Come posso cambiare il mio codice di campo per sempre intorno i risultati della mia espressione attuale?
Soluzione
si potrebbe fare
=Int(Sum([PartQty]*[ModuleQty]))+1
Credo. Che sarebbe ottenere la parte Int della somma (2) e quindi aggiungere 1. potreste avere bisogno di essere un po 'più intelligente come questo probabilmente vi darà 3, anche se la somma è esattamente 2, che probabilmente non è ciò che si desidera.
Non testato, ma qualcosa in questo senso potrebbe funzionare (sintassi di accesso che non è grande, ma dovrebbe darvi l'idea giusta):
Iif(Sum([PartQty]*[ModuleQty])-Int(Sum([PartQty]*[ModuleQty]))=0,
Sum([PartQty]*[ModuleQty]),
Int(Sum([PartQty]*[ModuleQty]))+1)
Altri suggerimenti
Questo è un vecchio trucco di accesso che ho imparato molto tempo fa, e si avvale del modo in cui gestisce l'accesso frazionaria, i numeri negativi. Prova questo:
-Int(-[DecimalValue])
E 'strano, ma sarà sempre intorno i numeri fino al numero intero più vicino.
Verifica questo: Round (yournumber + 0,5, 0)