Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb d'arrondie automatique ?

5 réponses
Avatar
olivier
Bonjour,

Je fais des calculs dans mon select

1) Je prends le nombre de jour présence d'un élève avec un COUNT(DISTINCT
Eleve_ID...)
2) je calcul la plage en jour entre le 1er jour et le dernier jour de
présence de l'élève.
3) je divise 2 / 1

j'obtiens un nombre entier !
alors qu'il devrait y a voir un nombre à virgule ??
(ex 117 / 36 = 3.25 --> il me renvoi 3 !!!

comprends pas pourquoi ?

merci
olivier

5 réponses

Avatar
olivier
plus simplement

SELECT 100/30
il renvoi 3 alors que c'est 3.33.....


comment faire ?

merci






"olivier" a écrit dans le message de news:

Bonjour,

Je fais des calculs dans mon select

1) Je prends le nombre de jour présence d'un élève avec un COUNT(DISTINCT
Eleve_ID...)
2) je calcul la plage en jour entre le 1er jour et le dernier jour de
présence de l'élève.
3) je divise 2 / 1

j'obtiens un nombre entier !
alors qu'il devrait y a voir un nombre à virgule ??
(ex 117 / 36 = 3.25 --> il me renvoi 3 !!!

comprends pas pourquoi ?

merci
olivier





Avatar
zoltix
On 2 juin, 18:13, "olivier" wrote:
plus simplement

SELECT 100/30
il renvoi 3 alors que c'est 3.33.....

comment faire ?

merci

"olivier" a écrit dans le message de news:




> Bonjour,

> Je fais des calculs dans mon select

> 1) Je prends le nombre de jour présence d'un élève avec un COUNT( DISTINCT
> Eleve_ID...)
> 2) je calcul la plage en jour entre le 1er jour et le dernier jour de
> présence de l'élève.
> 3) je divise 2 / 1

> j'obtiens un nombre entier !
> alors qu'il devrait y a voir un nombre à virgule ??
> (ex 117 / 36 = 3.25  --> il me renvoi 3 !!!

> comprends pas pourquoi ?

> merci
> olivier- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



tu dois au moin caster un nambre
example
select cast( 117 as float)/31

=3,7741935483871
Avatar
Med Bouchenafa
100 est un entier
30 est un entier
Pour SQL Server toute opération sur un entier est un entier
Si tu veux transformer le resautât en float, il faut utiliser un CAST ou un
CONVERT comme suggéré par Zoltix

Une autre astuce consiste juste a transformer en float l'un des deux
opérandes
100.00 ou tout simplement 100. ( note bien le point décimal)



SELECT 100./30
ou
SE:LECT 100/30.

donnera le resultat attendu


--
Bien Cordialement
Med Bouchenafa
"olivier" wrote in message
news:
Bonjour,

Je fais des calculs dans mon select

1) Je prends le nombre de jour présence d'un élève avec un COUNT(DISTINCT
Eleve_ID...)
2) je calcul la plage en jour entre le 1er jour et le dernier jour de
présence de l'élève.
3) je divise 2 / 1

j'obtiens un nombre entier !
alors qu'il devrait y a voir un nombre à virgule ??
(ex 117 / 36 = 3.25 --> il me renvoi 3 !!!

comprends pas pourquoi ?

merci
olivier





Avatar
olivier
merci bien ++

olivier


"Med Bouchenafa" a écrit dans le message de news:

100 est un entier
30 est un entier
Pour SQL Server toute opération sur un entier est un entier
Si tu veux transformer le resautât en float, il faut utiliser un CAST ou
un CONVERT comme suggéré par Zoltix

Une autre astuce consiste juste a transformer en float l'un des deux
opérandes
100.00 ou tout simplement 100. ( note bien le point décimal)



SELECT 100./30
ou
SE:LECT 100/30.

donnera le resultat attendu


--
Bien Cordialement
Med Bouchenafa
"olivier" wrote in message
news:
Bonjour,

Je fais des calculs dans mon select

1) Je prends le nombre de jour présence d'un élève avec un COUNT(DISTINCT
Eleve_ID...)
2) je calcul la plage en jour entre le 1er jour et le dernier jour de
présence de l'élève.
3) je divise 2 / 1

j'obtiens un nombre entier !
alors qu'il devrait y a voir un nombre à virgule ??
(ex 117 / 36 = 3.25 --> il me renvoi 3 !!!

comprends pas pourquoi ?

merci
olivier








Avatar
WOLO Laurent
Converti le diviseur en decimal(18,2) par exemple pour avoir un nombre à
virgule
"olivier" a écrit dans le message de
news:
Bonjour,

Je fais des calculs dans mon select

1) Je prends le nombre de jour présence d'un élève avec un COUNT(DISTINCT
Eleve_ID...)
2) je calcul la plage en jour entre le 1er jour et le dernier jour de
présence de l'élève.
3) je divise 2 / 1

j'obtiens un nombre entier !
alors qu'il devrait y a voir un nombre à virgule ??
(ex 117 / 36 = 3.25 --> il me renvoi 3 !!!

comprends pas pourquoi ?

merci
olivier