

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

Use o tipo de dados DECIMAL ou NUMERIC para armazenar valores com uma *precisão definida pelo usuário*. As palavras-chave DECIMAL e NUMERIC são intercambiáveis. Neste documento, *decimal* é o termo preferido para esse tipo de dados. O termo *numeric* é usado genericamente para se referir aos tipos de dados de número inteiro, decimal e de ponto flutuante. 

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

Defina uma coluna DECIMAL em uma tabela especificando um *precision* e: *scale* 

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

 *precision*   
O número total de dígitos significativos no valor inteiro: o número de dígitos em ambos os lados do ponto decimal. Por exemplo, o número `48.2891` tem precisão de 6 e uma escala de 4. A precisão padrão, quando não especificada, é 18. A precisão máxima é 38.  
 Se o número de dígitos à esquerda da vírgula decimal em um valor de entrada exceder a precisão da coluna menos sua escala, o valor não poderá ser copiado na coluna (ou inserido ou atualizado). Esta regra aplica-se a qualquer valor que caia fora do intervalo de definição da coluna. Por exemplo, o intervalo permitido de valores para uma coluna `numeric(5,2)` é `-999.99` a `999.99`. 

 *scale*   
O número de dígitos decimais na parte fracionada do valor, à direita do ponto decimal. Números inteiros têm uma escala de zero. Em uma especificação de coluna, o valor de escala deve ser menor ou igual ao valor de precisão. A escala padrão, quando não especificada, é 0. A escala máxima é 37.  
Se a escala de um valor de entrada carregado em uma tabela for maior do que a escala da coluna, o valor será arredondado para a escala especificada. Por exemplo, a coluna PRICEPAID na tabela SALES é uma coluna DECIMAL(8,2). Se um valor DECIMAL(8,4) é inserido na coluna PRICEPAID, o valor é arredondado para uma escala de 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)
```
 Contudo, os resultados de conversões explícitas dos valores selecionados a partir de tabelas não são arredondados.

**nota**  
O valor positivo máximo que você pode inserir na coluna DECIMAL(19,0) é `9223372036854775807` (263 -1). O valor negativo máximo é `-9223372036854775807`. Por exemplo, uma tentativa de inserir o valor `9999999999999999999` (19 noves) causará um erro de transbordamento. Independentemente do posicionamento do ponto decimal, a maior string que o AWS Clean Rooms pode representar como um número DECIMAL é `9223372036854775807`. Por exemplo, o maior valor que você pode carregar em uma coluna DECIMAL(19,18) é `9.223372036854775807`.  
Essas regras ocorrem por causa do seguinte:   
Valores DECIMAL com 19 ou menos dígitos significativos de precisão são armazenados internamente como valores inteiros de 8 bytes.
Valores DECIMAL com 20 a 38 dígitos significativos de precisão são armazenados como valores inteiros de 16 bytes.

## Observações sobre o uso de colunas do tipo DECIMAL ou NUMERIC de 128 bits
<a name="Numeric_types-notes-about-using-128-bit-decimal-or-numeric-columns"></a>

Não designe arbitrariamente a precisão máxima às colunas do tipo DECIMAL, a não ser que você esteja certo de que sua aplicação requer essa precisão. Valores de 128 bits usam duas vezes mais espaço em disco do que valores de 64 bits e podem retardar o tempo de execução da consulta. 