2010-04-01 3 views
4

Sur un rapport que j'ai le code suivant pour un champ:Comment arrondir toujours les valeurs décimales à la valeur entière la plus proche?

=Sum([PartQty]*[ModuleQty]) 

Des exemples de résultats sont 2.1 et 2.6. Ce dont j'ai besoin, c'est que ces valeurs soient arrondies à la valeur 3. Comment puis-je changer mon code de champ pour toujours arrondir les résultats de mon expression actuelle?

+0

Désolé. N'a pas utilisé ce site longtemps, comment votez-vous et acceptez-vous des réponses, vous êtes le premier à le mentionner. Vous avez été très utile. Shaun – Shaun

+1

pas de problème :). Pour voter, cliquez sur les flèches au-dessus ou en dessous du chiffre en haut à gauche des réponses. cliquez sur la flèche vers le haut pour voter que la réponse est utile, la flèche vers le bas si ce n'est pas le cas. laisser un commentaire si vous downvote pour dire pourquoi. Cliquez sur le symbole de la coche à côté de la réponse que vous acceptez comme étant la réponse à votre question. ça va passer au vert pour montrer que c'est la solution acceptée. –

Répondre

1

vous pourriez faire

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

Je pense. Cela ferait entrer l'Int dans la somme (2) et ensuite ajouter 1. Vous devrez peut-être être un peu plus intelligent car cela vous donnera probablement 3 même si la somme est exactement 2, ce qui n'est probablement pas ce que vous voulez.

pas testé, mais quelque chose le long de ces lignes pourrait fonctionner (syntaxe d'accès est pas terrible, mais devrait vous donner l'idée à droite):

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

Bonjour Sam. Vous avez raison à propos de votre première idée, si la valeur est 2, arrondir au maximum. Va essayer la prochaine idée bientôt. Salutations – Shaun

+0

Bonjour Sam. J'ai essayé le nouveau code, je reçois toujours un message d'erreur concernant les virgules. Shaun. – Shaun

+0

Salut Sam J'ai remplacé la première virgule avec ensuite et la seconde virgule avec = ne fonctionne toujours pas à obtenir des erreurs – Shaun

4

C'est un vieux truc d'accès, j'ai appris un temps très long Il utilise la façon dont Access gère les nombres négatifs et fractionnaires. Essayez ceci:

-Int(-[DecimalValue]) 

Il est étrange, mais il arrondira toujours vos nombres jusqu'au nombre entier le plus proche.

+0

Très intéressant – Fionnuala

+0

Oui, je suis d'accord. Je ne sais pas si c'est un bug mais ça marche depuis des années et, en fait, je l'ai utilisé l'autre jour dans Access 2010. Donc, c'est toujours utile.Aussi, est assez laconique et aussi longtemps que vous comprenez le but de la syntaxe, c'est le moyen le plus simple d'exprimer que vous voulez "arrondir" un nombre. – RLH

+0

Je suis à peu près sûr que ce n'est pas un bug, c'est arrondi vers le bas, n'est-ce pas, dans chaque cas? '-1.4 = -2',' 1.4 = 1' – Fionnuala

1

Test this: Rond (votre numéro + 0,5, 0)

Questions connexes