pb d'arrondie automatique ?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
olivier
Le #19471441
plus simplement

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


comment faire ?

merci






"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





zoltix
Le #19474671
On 2 juin, 18:13, "olivier"
plus simplement

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

comment faire ?

merci

"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- 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
Med Bouchenafa
Le #19475771
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" 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





olivier
Le #19476371
merci bien ++

olivier


"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" 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








WOLO Laurent
Le #19565631
Converti le diviseur en decimal(18,2) par exemple pour avoir un nombre à
virgule
"olivier" 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





Publicité
Poster une réponse
Anonyme