La regolazione del formato dei numeri arrotonda i numeri in modo errato
Pubblicato: 15 Oct 2015 Data dell'ultima modifica: 10 Nov 2023
Problema
Quando si modifica il quantitativo delle posizioni decimali da visualizzare per un numero, questo potrebbe erroneamente essere arrotondato per eccesso o per difetto. Ad esempio, il numero 40,5 potrebbe trasformarsi in 40 quando si modifica la formattazione per non visualizzare nessuna posizione decimale.
Inoltre, quando si usa la funzione ROUND() all'interno di una funzione STR(), l'arrotondamento potrebbe risultare sbagliato quando il valore viene connesso a un'estrazione. Ad esempio: STR(ROUND(SUM[Sales]),2)
Ambiente
Tableau Desktop
Soluzione
Opzione 1
È possibile arrotondare i valori in Tableau Desktop ricorrendo all'uso della funzione ROUND(). Tuttavia, durante la scrittura del calcolo è necessario considerare l'aggregazione in quanto Tableau potrebbe interpretarlo relativamente alle aggregazioni applicate. Ad esempio, se il campo da arrotondare è SUM([Field]) e il calcolo desiderato è ROUND([Field]), allora Tableau interpreterà tale calcolo come SUM(Round([Field]).
Per risolvere questo comportamento, scrivi nuovamente il calcolo sopraindicato come segue: ROUND(SUM(Field))
Per un esempio concreto, vedi la cartella di lavoro in allegato denominata Round String.twbx.
Opzione 2
Per creare una rappresentazione più accurata, usa dei modificatori di stringa aggiuntivi come LEFT() e altri strumenti di arrotondamento come CEILING().
Tieni presente che tali modifiche possono creare un campo calcolato lungo e dalle prestazioni non ottimali: STR(ROUND(SUM[Sales]),2) = 319.147230000001
Utilizzando le modifiche sopraindicate: LEFT(STR((CEILING(SUM([Sales])*100))/100),6) = 319.15
Opzione 3
Visualizza i dati sottostanti per verificare il numero originale e assicurarti che l'arrotondamento che viene effettuato sia corretto per il formato numerico. Ad esempio, un valore originale di 40,48 verrebbe correttamente arrotondato a 40,5 in caso tu abbia specificato una posizione decimale e a 40 in caso tu abbia specificato zero posizioni decimali.
Causa
In Tableau Desktop (Tableau Prep) i numeri vengono arrotondati in base al valore originale presente nel database, secondo la convenzione "arrotonda a metà".
Ulteriori informazioni
Dal momento che tale comportamento non è specifico di Tableau Desktop, è importante sapere come i computer archiviano i dati, specialmente quelli che consideriamo valori "decimali". Per i numeri interi è facile: è sufficiente aggiungere o sottrarre un numero intero. La stessa operazione può essere effettuata con i dati binari:
Nel sistema decimale: 4 + 1 = 5
Nel sistema binario: 100 + 1 = 101
Tuttavia, a volte, la traduzione dei valori decimali distinti in una rappresentazione binaria non è perfetta.
Nel sistema decimale ad esempio, ,1 è un valore semplice, ma il numero che rappresenta tale valore nel sistema binario potrebbe rappresentare sia 0,0999999999999999 sia 0,1000000000000001 e tutti i numeri compresi in questo intervallo. Osserva: ci sono esattamente 16 posizioni decimali in ogni numero. È possibile gestirle mostrando i valori numerici nel livello di visualizzazione, ma eseguire calcoli sui valori o convertirli in stringhe causerà la visualizzazione dei valori sottostanti. Questo comportamento varia in base a diversi fattori, inclusa la base dei dati.
Di seguito sono presentati alcuni esempi e articoli che illustrano il modo in cui questo problema, fondamentale nell'informatica, si presenta nei diversi linguaggi.
Per le discussioni su questo argomento e le possibili soluzioni in Tableau Desktop, consulta le seguenti discussioni della Community: Round and then convert to a string.
Per ulteriori informazioni sulla funzione ROUND(), vedi la seguente documentazione della Guida di Tableau: Funzioni numeriche.
Grazie per aver inviato il tuo feedback sull'efficacia dell'articolo.