Problème de type de données de formule ? - Mauvaise sortie lors de la comparaison de deux colonnesSalut,
Je rencontre un problème étrange dans JMP que je n'arrive pas à expliquer. Dans mon tableau, je compare les valeurs de deux colonnes. La colonne "A" est juste une simple colonne numérique continue avec des valeurs entières allant de 0 à 100. La colonne "B" est une autre simple colonne numérique continue avec des nombres allant de 0 à 1, le tout avec une précision jusqu'à deux décimales. Je crée ensuite une colonne "C" pour comparer directement "A" et "B" en définissant une formule dans "C": B*100. Cependant, lorsque je compare ensuite les colonnes "A" et "C", dans quelques cas, A et C sont en effet égaux, mais JMP dit qu'ils ne le sont pas. Cela devrait être une comparaison simple, mais pour une raison quelconque, certains chiffres ne sont pas comparables. Changer la colonne "C" en caractère puis revenir au numérique résout ce problème, mais j'ai l'impression que je ne devrais pas vraiment avoir à le faire... Quelqu'un peut-il expliquer le problème sous-jacent ?
J'ai joint un exemple de jeu de données qui répertorie tous les nombres possibles. Vous pouvez voir que le problème apparaît dans les lignes 7, 14, 28, 29, 55, 56, 57 et 58.
Apprécierait toute perspicacité ici.
Merci,
Mélisse
Re : Problème de type de données de formule ? - Mauvaise sortie lors de la comparaison de deux colonnesAh, oui, tu as raison. Merci beaucoup!
Re : Problème de type de données de formule ? - Mauvaise sortie lors de la comparaison de deux colonnesLe problème est avec les nombres à virgule flottante/binaire.Tous les nombres ne peuvent pas être exactement enregistrés en tant qu'entrées exactes.C'est l'un des faits à long terme avec les ordinateurs.Et JMP stocke ses données numériques dans cette formule, puis lors de l'affichage, les corrige à la valeur corrigée.C'est un problème avec presque tous les systèmes qui effectuent une analyse numérique.
Si je me souviens en arrière ..... en arrière, je crois que le nombre 3 ne peut pas être stocké, et en réalité est stocké comme quelque chose comme 2.9999999999998.Je peux me tromper sur le numéro 3, mais j'espère que vous avez compris l'idée.
Re : Problème de type de données de formule ? - Mauvaise sortie lors de la comparaison de deux colonnes@melissacch ,
Au lieu de copier les données ou de les saisir manuellement, pourriez-vous essayer de créer un script pour votre table ?
Voici un exemple. Je n'arrive pas à trouver un moyen simple de générer une série de décimales. Mais si vous deviez faire quelque chose comme ça, vous éviteriez le problème de l'arrondi, je pense.
dt = New Table();
Set1 = Index(1,100);
Set2 = Index(0.01,1); // This doesn't work
dt << New Column("A",Format("Fixed Decimal",10,2),Numeric,Continuous,<< Set Values(Set1))
<< New Column("B",Format("Fixed Decimal",10,2),Numeric,Continuous,<< Set Values(Set2))// Will Fail
<< New Column("B*100",Format("Fixed Decimal",10,2),Numeric,Continuous,Formula(:B*100))
<< New Column("Check1",Format("Fixed Decimal",10,2),Numeric,Continuous,Formula(:A == :Name("B*100")));Re : Problème de type de données de formule ? - Mauvaise sortie lors de la comparaison de deux colonnesSalut @uday_guntupalli
Merci beaucoup pour la réponse. J'aurais dû regarder la différence et voir que c'était un problème d'arrondi. Avez-vous une idée de la raison pour laquelle JMP génère ces minuscules différences ? Je saisis manuellement ces nombres, il ne devrait donc pas y avoir d'autres décimales/précision.
Re : Problème de type de données de formule ? - Mauvaise sortie lors de la comparaison de deux colonnes@melissacch ,
C'est un problème d'erreur d'arrondi. Si vous voyez le tableau de données que j'ai joint, j'ai inclus une nouvelle colonne dans laquelle la différence entre les deux colonnes est calculée. Il y a une valeur minuscule, c'est pourquoi JMP renvoie une valeur inégale.
J'espère que cela t'aides