

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tipo DECIMAL o NUMERIC
<a name="Numeric_types-decimal-or-numeric-type"></a>

Usare il tipo di dati DECIMAL o NUMERIC per memorizzare i valori con una *precisione definita dall'utente*. Le parole chiave DECIMAL e NUMERIC sono interscambiabili. In questo documento, *decimale* è il termine preferito per questo tipo di dati. Il termine *numerici* è usato solitamente per riferirsi a tipi di dati interi, decimali e in virgola mobile. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/clean-rooms/latest/sql-reference/Numeric_types-decimal-or-numeric-type.html)

Definisci una colonna DECIMAL in una tabella specificando un e: *precision* *scale* 

```
decimal(precision, scale)
```

 *precision*   
Il numero totale di cifre significative nell'intero valore: il numero di cifre su entrambi i lati del punto decimale. Ad esempio, il numero `48.2891` ha una precisione di 6 e una scala di 4. La precisione predefinita, se non specificata, è 18. La precisione massima è 38.  
 Se il numero di cifre a sinistra del punto decimale in un valore di input supera la precisione della colonna meno la scala, il valore non può essere copiato nella colonna (o inserito o aggiornato). Questa regola si applica a qualsiasi valore che non rientra nell'intervallo della definizione della colonna. Ad esempio, gli intervalli di valori ammessi per una colonna `numeric(5,2)` è da `-999.99` a `999.99`. 

 *scale*   
Il numero di cifre decimale nella parte frazionaria del valore, alla destra del punto decimale. Gli interi hanno una scala di zero. Nella specifica di una colonna, è necessario che il valore della scala sia inferiore o uguale al valore della precisione. La scala predefinita, se non specificata, è 0. La scala massima è 37.  
Se la scala di un valore input caricato in una tabella è maggiore della scala della colonna, il valore viene arrotondato alla scala specificata. Ad esempio, la colonna PRICEPAID nella tabella SALES è una colonna DECIMAL(8,2). Se un valore DECIMAL(8,4) viene inserito nella colonna PRICEPAID, il valore viene arrotondato alla scala di 2.   

```
insert into sales
values (0, 8, 1, 1, 2000, 14, 5, 4323.8951, 11.00, null);

select pricepaid, salesid from sales where salesid=0;

pricepaid | salesid
-----------+---------
4323.90 |       0
(1 row)
```
 Tuttavia, i risultati di espliciti cast di valori selezionati dalle tabelle non sono arrotondati.

**Nota**  
Il valore positivo massimo che è possibile inserire in una colonna DECIMAL(19,0) è `9223372036854775807` (263 -1). Il valore negativo massimo è `-9223372036854775807`. Ad esempio, il tentativo di inserire il valore `9999999999999999999` (19 nove) causerà un errore dell'overflow. Indipendentemente dalla posizione del punto decimale, la stringa più grande che AWS Clean Rooms può rappresentare come numero DECIMAL è `9223372036854775807`. Ad esempio, il valore più grande che è possibile caricare in una colonna DECIMAL(19,18) è `9.223372036854775807`.  
Queste regole sono dovute a quanto segue:   
I valori DECIMAL con 19 o meno cifre significative di precisione vengono memorizzati internamente come numeri interi da 8 byte.
I valori DECIMAL con una precisione compresa tra 20 e 38 cifre significative vengono memorizzati come numeri interi da 16 byte.

## Note sull'utilizzo di colonne NUMERIC o DECIMAL a 128 bit
<a name="Numeric_types-notes-about-using-128-bit-decimal-or-numeric-columns"></a>

Non assegnare in modo arbitrario la precisione massima alle colonne DECIMAL a meno che non sia certo che l'applicazione richieda tale precisione. I valori a 128 bit usano il doppio dello spazio su disco rispetto ai valori a 64 bit e possono quindi rallentare il tempo di esecuzione delle query. 