# What Is Decimal Data Type in PostgreSQL?

//

Scott Campbell

What Is Decimal Data Type in PostgreSQL?

When working with databases, it is essential to understand the different data types available and how they can be used to store and manipulate data. One commonly used data type in PostgreSQL is the Decimal data type. The Decimal data type allows you to store precise numeric values with a specified number of digits before and after the decimal point.

## Why Use Decimal Data Type?

The Decimal data type is particularly useful when dealing with financial or monetary values, where accuracy is crucial. Floating-point numbers, such as the double precision or real data types, may introduce rounding errors due to their inherent imprecision. On the other hand, the Decimal data type provides fixed-point arithmetic, ensuring accurate calculations without any loss of precision.

## Syntax

The syntax for defining a column with the Decimal data type in PostgreSQL is as follows:

``````
CREATE TABLE table_name (
column_name DECIMAL(precision, scale)
);
``````
• Precision: Specifies the total number of digits (both before and after the decimal point) that can be stored in the column.
• Scale: Specifies the maximum number of digits allowed after the decimal point.

For example, if we want to store a monetary value with a maximum of 10 digits (including 2 decimal places), we can define a column as follows:

``````
CREATE TABLE transactions (
amount DECIMAL(10, 2)
);
``````

## Examples

To better understand how the Decimal data type works, let’s consider a few examples:

### Example 1:

Suppose we have a table called “products” with a column named “price” defined as DECIMAL(8, 2). We can insert the following values into the “price” column:

• 12.34
• 567.89
• 0.99

In this case, the maximum number of digits allowed is 8 (including the 2 decimal places). Therefore, values like “1234567.89” or “0.001” would not be accepted.

### Example 2:

Let’s consider another example where we have a table called “employees” with a column named “salary” defined as DECIMAL(10, 0). We can insert the following values into the “salary” column:

• 50000
• 100000
• 75000

In this case, since the scale is set to zero, we can only store whole numbers in the “salary” column.

## Conclusion

The Decimal data type in PostgreSQL provides precise storage and calculations for numeric values. It is particularly useful for applications that require accurate financial or monetary calculations. By understanding how to define and use the Decimal data type correctly, you can ensure that your data remains accurate and reliable.