Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 14/01/2009 18:06:22
- YannT
- Membre
problème de conversion de type
Bonjour,
quelqu'un peut-il m'expliquer pourquoi un :
select cast (67/147 as numeric(5,5) )
me renvoie :
0.00000
au lieu du 0,45578 attendu ?
Postgres 8.3
Ubuntu 8.04
Hors ligne
#2 14/01/2009 21:00:30
- xavier-Pierre
- Membre
Re : problème de conversion de type
la division entre 2 entiers sous postgres est tronqué donc 67/147 donne 0
par contre select cast (67./147. as numeric(5,5) ) renvoie bien le resultat attendu
Hors ligne
#3 15/01/2009 20:41:10
- YannT
- Membre
Re : problème de conversion de type
Merci,
En fait mes valeurs entières étaient le résultat de select count, et ce sont ces Select count que j'ai du caster :
select count(ouv1.idcat), round((cast(count(ouv1.idcat) as numeric(5,2))/
cast((select count(ouv2.idouv) from ouvrage ouv2) as numeric(5,2) )*100 ))||' %' as pourcent
from ouvrage ouv1
group by ouv1.idcat
order by count(ouv1.idcat) desc
count | pourcent
-------+----------
67 | 45 %
44 | 30 %
38 | 26 %
sans doute un peu lourdingue, mais je n'ai pas mieux
Hors ligne
#4 15/01/2009 22:13:11
- xavier-Pierre
- Membre
Re : problème de conversion de type
bonsoir une ecriture un peu plus concise et pratique
count(ouv1.idcat)::numeric(5,2) <==> cast(count(ouv1.idcat) as numeric(5,2))
Hors ligne
Pages : 1