Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Forum

Trouvez des réponses, posez des questions, et partagez votre expertise d’Alteryx.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index

Tips de la semaine (52) - Mieux comprendre le format FixedDecimal

StephaneP
Alteryx
Alteryx

Bonjour folle jeunesse,

 

Ayant du me pencher sur une erreur liée au format FixedDecimal j'ai réalisé qu'il n'était pas forcément intuitif. Voici donc un rapide résumé.

 

Le voici, visualisé dans l'objet Select.

StephaneP_0-1581603571201.png 

Il a l'air tout simple avec ses 2 chiffres.

Spontanément on pense ici à 6 caractères en tout et 2 décimales. Facile quoi.

 

Et bien en fait pas exactement, c'est plus compliqué et cela peut générer des alertes inatendues.

 

Prenons l’exemple du format 6 :2

  • 6  = Nombre total de caractères maximum composant le format cible. On parle bien de caractères et pas de chiffre (cf plus loin)
  • 2 = DONT nombre de décimales OBLIGATOIRE. Cela signifie que sur les 6, 2 sont déjà réservés à nos décimales.

Attention, dans les 6 sont aussi comptés le séparateur (. ou ,) et le signe négatif le cas échéant ce qui génère des variations de 1 à 2 par rapport au format.       

Tout nombre dont le format cible dépasserai ce nombre total de 6 caractères sort en erreur et affiche « NULL » en sortie associé à une erreur de type :

Erreur_FixedDecimal.png

Le comptage n'est pas forcément intuitif. En effet, le 6 affiché concerne le format CIBLE (6:2) et pas le format d'entrée.            

Dans cet exemple, on a déjà 2 caractères décimaux imposés + 1 séparateur = 3 caractères. Cela signifie qu'il ne peut y avoir dans ce format que maximum 3 entiers dans la données d’entrée.            

Si cela était un chiffre négatif, on ne pourrait plus avoir que 2 entiers (2 caractères décimaux + 1 séparateur + 1 signe négatif déjà imposés en format cible = 4).

 

Tous le monde suit ?

 
 

Little_girl2.gif

 

Bon OK, hop, un petit exemple pour valider que ceux du fond de la classe ont bien compris.

 

Exemple pour le format 6 :2

 FixedDecimal.png

J'ai placé ces exemples dans le workflow joint.

 

En complément, voici les 2 erreurs qui revienent souvent.

1. Lorsque la somme des caractères est supérieure au nombre total de caractères:

Erreur_FixedDecimal.png

Ici c'est normal car on a 7 caractères au lieu des 6 max. Il suffit juste d'adapter le format pour résoudre l'erreur. 

 

2. lorsque le séparateur de décimale est distinct de celui de votre poste (point vs virgule) et qu'il ne reconnais le champs comme un numérique.

Erreur_FixedDecimal3.png

Il suffit alors de remplacer le séparateur non reconnu par son homologue. Cf  workflow exemple.

 

Donc en conclusion, si vous n'avez pas de contrainte de volumétrie, prennez de la marge pour définir vos FixedDecimal.

 

Et voila, on va tous pouvoir frimer à la machine à café maintenant.

Little_girl.gif

Bonne fin de journée.

Stéphane Portier
Sales Engineer
Alteryx
1 RÉPONSE 1
StephV
Alteryx Alumni (Retired)

Merci @StephaneP ! En plus de nous donner de très bons conseils, tu nous fais rire ! 

Steph Vitale-Havreng
Étiquettes