addFormat - Quelle est la fonction du paramètre `fuzz` dans l'action `addFormat`?

Précision : Gérez les Décimales et la Tolérance

Réponse

Le paramètre `fuzz` spécifie un facteur de tolérance (fuzz factor) pour faire correspondre des valeurs numériques à une plage, ce qui est utile pour les données non exactes.
SAS / CASL
proc cas;
   /* Initialisation */
   sessionProp.addFmtLib / fmtLibName="MesFormats" replace=true;

   /* Création d'un format avec tolérance élargie */
   sessionProp.addFormat /
      fmtLibName="MesFormats",
      fmtName="StockFlexible",
      /* Le fuzz étend les bornes de +/- 1.5 */
      fuzz=1.5, 
      ranges={
         /* Normalement, 55 est exclu ici (car > 54).
            MAIS grâce au fuzz : borne max effective = 54 + 1.5 = 55.5
            Donc 55 sera inclus dans "Petit Stock" */
         "low - 54 = 'Petit Stock'", 
         
         "54 <- high = 'Grand Stock'"
      };

   /* Application et vérification */
   table.fetch / 
      table={caslib="casuser", name="produits"}
      /* On applique le format à la volée pour l'affichage */
      format={Quantite="StockFlexible."};
quit;
Cette réponse vous a-t-elle aidé ?
L'allié indispensable des calculs en virgule flottante.Dans le monde informatique, le stockage des nombres décimaux n'est jamais parfait (problème de floating-point precision). Un résultat calculé qui devrait être exactement 100 peut être stocké comme 99.999999999. Sans tolérance, ce chiffre raterait un intervalle commençant à 100.Le paramètre fuzz étend artificiellement les bornes de vos intervalles.Règle d'or : Utilisez-le pour lisser les micro-écarts issus de calculs, mais évitez de l'utiliser pour corriger des erreurs de données macroscopiques. Par défaut, SAS applique un fuzz très faible ($1E-12$), mais vous pouvez l'augmenter ici pour des règles métier souples (ex: "Considérer 54.8 comme 55").
addFormat

sessionProp

Doc : addFormat