Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between decimal and numeric in Postgres?

Tags:

postgresql

I'm changing a column in the database from "money" to "numeric" per some previous advice here.

Looking through the data types in postgres -- https://www.postgresql.org/docs/current/static/datatype-numeric.html -- I can't see any differences between numeric and decimal in the descriptions.

What is the difference between decimal and numeric, and is there any reason I should use numeric instead of decimal for prices in my database?

like image 734
some1 Avatar asked Jul 24 '26 19:07

some1


1 Answers

According to the manual they are the same.

The types decimal and numeric are equivalent. Both types are part of the SQL standard.

https://www.postgresql.org/docs/current/static/datatype-numeric.html

The difference lies in the SQL standard which allows for different behaviour:

NUMERIC must be exactly as precise as it is defined — so if you define 4 decimal places, the DB must always store 4 decimal places.

DECIMAL must be at least as precise as it is defined. This means that the database can actually store more digits than specified (due to the behind-the-scenes storage having space for extra digits). This means the database might store 1.00005 instead of 1.0000, affecting future calculations.

Difference between DECIMAL and NUMERIC

like image 100
Philip Couling Avatar answered Jul 27 '26 14:07

Philip Couling



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!