Loading

La regolazione del formato dei numeri arrotonda i numeri in modo errato

Data pubblicazione: Sep 24, 2025
Descrizione
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)

Causa

In Tableau Desktop (Tableau Prep) i numeri vengono arrotondati in base al valore originale presente nel database, secondo la convenzione "arrotonda a metà". 
Risoluzione

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 utilizzato è 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, usare dei modificatori di stringa aggiuntivi come LEFT() e altre funzioni di arrotondamento come CEILING().

  • Tenere presente che tali modifiche possono creare un campo lungo: 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 se è stata specificata una posizione decimale e a 40 se è stato specificato zero posizioni decimali.

Risorse aggiuntive

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.

 

Numero articolo Knowledge

001473206

Allegati

Round String.twbx

1197 KB

 
Caricamento
Salesforce Help | Article