Problema relativo al tipo di dati della formula? - Output errato quando si confrontano due colonneCIAO,
Sto riscontrando uno strano problema in JMP che non riesco a spiegare. Nella mia tabella sto confrontando i valori in due colonne. La colonna "A" è solo una semplice colonna numerica continua con valori interi compresi tra 0 e 100. La colonna "B" è un'altra semplice colonna numerica continua con numeri compresi tra 0 e 1, tutti con precisione fino a due cifre decimali. Quindi creo una colonna "C" per confrontare direttamente "A" e "B" impostando una formula in "C": B*100. Tuttavia, quando confronto le colonne "A" e "C", in alcuni casi A e C sono effettivamente uguali, ma JMP dice che non lo sono. Questo dovrebbe essere un semplice confronto, ma per qualche motivo alcuni numeri non sono comparabili. Cambiare la colonna "C" in carattere e poi di nuovo in numerico risolve questo problema, ma sento che non dovrei davvero doverlo fare ... Qualcuno può spiegare il problema di fondo?
Ho allegato un set di dati di esempio che elenca tutti i numeri possibili. Puoi vedere che il problema si presenta nelle righe 7, 14, 28, 29, 55, 56, 57 e 58.
Gradirei qualsiasi intuizione qui.
Grazie,
Melissa
Re: Problema relativo al tipo di dati della formula? - Output errato quando si confrontano due colonneAh, sì, hai ragione. Grazie mille!
Re: Problema relativo al tipo di dati della formula? - Output errato quando si confrontano due colonneIl problema riguarda i numeri in virgola mobile/binari.Non tutti i numeri possono essere salvati esattamente come inseriti esattamente.Questo è uno dei fatti a lungo termine con i computer.E JMP memorizza i suoi dati numerici in questa formula e quindi, quando viene visualizzata, li corregge riportandoli al valore corretto.Questo è un problema con quasi tutti i sistemi che eseguono analisi numeriche.
Se ricordo bene... molto tempo fa, credo che il numero 3 non possa essere memorizzato, e in realtà è memorizzato come qualcosa come 2.9999999999998.Potrei sbagliarmi sul numero 3, ma spero che tu abbia capito.
Re: Problema relativo al tipo di dati della formula? - Output errato quando si confrontano due colonne@melissacch ,
Invece di copiare i dati o inserirli manualmente, potresti provare a creare uno script per la tua tabella?
Ecco un esempio. Non riesco a capire un modo semplice per generare una serie di decimali. Ma se dovessi fare qualcosa del genere, eviteresti il problema dell'arrotondamento, penserei.
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: Problema relativo al tipo di dati della formula? - Output errato quando si confrontano due colonneCIAO @uday_guntupalli
Grazie mille per la risposta. Avrei dovuto esaminare la differenza e vedere che si trattava di un problema di arrotondamento. Qualche idea sul perché JMP stia generando queste minuscole differenze? Inserisco manualmente questi numeri, quindi non dovrebbero esserci ulteriori decimali/precisione.
Re: Problema relativo al tipo di dati della formula? - Output errato quando si confrontano due colonne@melissacch ,
È un problema di errore di arrotondamento. Se vedi la tabella dei dati che ho allegato, ho incluso una nuova colonna in cui viene calcolata la differenza tra entrambe le colonne. C'è un valore minuscolo, ecco perché JMP restituisce disuguale.
Spero che questo ti aiuti