#1 Thu 30 October 2014 12:05
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
QGIS : Formater un nombre
Bonjour,
Je souhaites savoir si il est possible de formater un nombre pour un affichage d'étiquette. Je sais que Qgis possède plusieurs fonctions, comme "format_number", qui vont dans ce sens mais je cale sur celle a utiliser.
Nombre utilisé : 12,2356
Format d'affichage : 12a 23er 56 ca
Merci
Hors ligne
#2 Thu 30 October 2014 13:07
- Titius
- Participant actif
- Date d'inscription: 27 Aug 2013
- Messages: 69
Re: QGIS : Formater un nombre
Bonjour,
Vous devriez plutôt regarder du côté des fonctions de chaînes de caractères, notamment, left(), right(), substr() et concat().
Dans votre cas, la formule SQL
concat(left('12,2356',2),'a ',substr('12,2356',4,2),'er ',right('12,2356',2),' ca')
renverra ce que vous souhaitez.
Bien entendu, il faudra remplacer '12,2356' par le nom de champ de votre attribut.
Il sera peut être aussi nécessaire d'utiliser la fonction tostring() pour transformer votre nombre réel en chaîne de caractère.
Dans ce cas, remplacez dans la formule '12,2356' par tostring("NOM_DE_CHAMP")
Hors ligne
#3 Thu 30 October 2014 14:03
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: QGIS : Formater un nombre
Merci pour cette réponse, il me reste encore quelques bug à corrigé car le nombre n'a pas systématique deux nombre avant la virgule.
Hors ligne
#4 Thu 30 October 2014 14:20
- Titius
- Participant actif
- Date d'inscription: 27 Aug 2013
- Messages: 69
Re: QGIS : Formater un nombre
De rien,
Dans ce cas, il vous faut utiliser strpos() (il faut faire attention avec cette fonction car le premier caractère est numéroté 0)
dans votre cas, left('12,2356',2) devient left('12,2356',strpos('12,2356',','))
et substr('12,2356',4,2) devient substr('12,2356',strpos('12,2356',',')+2,2)
Hors ligne
#5 Wed 05 November 2014 10:00
- geobrie
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 120
Re: QGIS : Formater un nombre
Merci et désolé pour cette réponse tardive, je teste cette solution de suite
Dernière modification par geobrie (Wed 05 November 2014 10:00)
Hors ligne