Rechercher : dans
Par :

Arrondir valeur supérieure avce sql access

Dernière réponse le 22 jan 2009 à 11:57:26 donlefou, le 26 jui 2005 à 17:24:45 
 Signaler ce message aux modérateurs

Bonjour, je voudrais savoir si dans une requête SQL on pouvait arrondir une valeur à sa valeur entière supérieure.
Il y a la fonction Int(Nombre) qui arrondi juste à l'entier le plus proche.(0,3 devient 0)
Je voudrais arrondir 0,3 à 1.

Meilleures réponses pour « Arrondir valeur supérieure avce sql access » dans :
Tableur - Les fonctions mathématiques VoirLes fonctions standards Méthode description ABS() Cette méthode renvoie la valeur absolue d'un nombre, il renvoie donc le nombre s'il est positif, son opposé (positif) s'il est négatif IMPAIR(valeur) Cette méthode renvoie la valeur...

1

_Agnes, le 26 jui 2005 à 23:16:33

Salut

Je crois que la fonction ROUND arrondi à l'entier le plus proche. Ce que tu peux faire, c'est arrondir et faire +1 sur l'arrondi...

A+

Le temps perdu ne se rattrape jamais. 
Alors, continuons de ne rien faire. J.Renard

Répondre à _Agnes

2

blux, le 27 jui 2005 à 11:17:34

Salut,

la fonction ROUND n'existe pas en ACCESS...

Mais on peut ruser, il faut voir si le nombre est à virgule (on regarde donc le résultat du nombre moins sa partie entière), dans ce cas, on isole la partie entière et on lui ajoute un, c'est l'objet de la requête ci-dessous :

SELECT TABTEST.[champ], IIf([champ]-Int([champ])=0,[champ],int([champ])+1) AS Resu
FROM TABTEST;

champ	Resu
0,024	1
0,5	1
1	1
14,5	15
2,3	3
0,1	1
0,3	1
1	1
2	2
3	3
1245	1245
45	45
1256	1256
4584,256	4585
2	2
6	6
7	7
8	8
95	95
0,0003	1
Et hop !
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

3

donlefou, le 27 jui 2005 à 14:04:56

Merci Blux, mais il me semble qu'il y a un petit probleme.
0,2 donne 1 OK
1,4 donne 2 OK
mais 1,6 donne 3 or il faut que 1,6 donne 2
Y'a un petit truc à modifier dans la formule, je pense.

Répondre à donlefou

4

blux, le 27 jui 2005 à 14:53:02

Re-testé chez moi, ça fonctionne bien...

Problème avec int ? avec le calcul de la différence ? Champs décrits en réels ?
Quelle version d'access ? (97 chez moi...)

essaye d'afficher uniquement le résultat de la différence :

SELECT TABTEST.[champ], ([champ]-Int([champ])=0) AS Resu
FROM TABTEST;
Pour voir...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

5

donlefou, le 27 jui 2005 à 16:45:42

Ok c'est bon, ca marche, merci Blux. A++

Répondre à donlefou

7

blux, le 28 jui 2005 à 08:47:31

Ca m'intéresse de savoir d'où venait l'erreur...
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

6

random, le 27 jui 2005 à 18:42:42

Et 2 ca donnerait pas 3 avec cette méthode ? elle est pas belle, la vie ?

Répondre à random

8

no_pain, le 5 oct 2007 à 17:09:36

En fait, la fonction int() ne renvoie pas le nombre le plus proche mais l'entier inférieur (0,3==>0 mais 0,8==>0)

c'est pour ça que int(nb+1) ça arrondi vers l'entier le plus haut.

Répondre à no_pain

9

no_pain, le 5 oct 2007 à 17:09:40

En fait, la fonction int() ne renvoie pas le nombre le plus proche mais l'entier inférieur (0,3==>0 mais 0,8==>0)

c'est pour ça que int(nb+1) ça arrondi vers l'entier le plus haut.

Répondre à no_pain

10

aquaman, le 4 fév 2008 à 13:39:55

Faux: int(1+1) = 2
alors que 1 arrondi nous donne 1

pas encore la bonne solution

Répondre à aquaman

11

blux, le 4 fév 2008 à 14:00:02

La question initiale était d'arrondir à l'entier supérieur, la formule que j'ai donnée en son temps marche parfaitement.

1 arrondi nous donne 1 La fonction d'arrondi n'existe pas sous ACCESS...

A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

12

b747fred, le 22 mai 2008 à 10:00:51

Pour Info si ca peut aider quelqu'un

Fonction arrondi supérieur dans tous les cas dans l'expression d'une requête access

x est un réel

iif(int(x)=x;x;int(x+1))

x=1

int(1) est égal à 1 donc donne 1

x=1.1

int(1.1) n'est pas égal à 1 donc donne 1+1=2

Biensur on peut remplacer x par la valeur d'un champ mais dans ce cas n'oubliez pas les crochez

x est un champ

iif(int([x])=[x];[x];int([x]+1))

Cordialement

b747fred

Répondre à b747fred

13

 buffon74, le 22 jan 2009 à 11:57:26

Je cherchais sur Internet à faire l'arrondi sup d'un réel sous Access. Je suis tombée sur votre message qui m'a grandement aidée.
Merci.

Répondre à buffon74
Collection CommentÇaMarche.net