MySQL offers a variety of data types to its users, including float and decimal data types. Let's have a look at the main differences between the float and decimal data types in MySQL.


To hold definite numeric values, DECIMAL data types are used.

This type is also known as "Fixed-Point" or "Exact Value" Types and is typically used when precision points with exact values are required, such as when storing financial data such as item costs.

NUMERIC is executed as DECIMAL in MySQL.

Example: Its type is DECIMAL(4,2), indicating that there are two decimals inside four digits. This number can be stored in it: 66.76 not in 666.74

This type can be queried in the same way as any other numeric field. Here's how to do it:

CREATE TABLE DemoDecimal (
BookName varchar(255)
    BookPrice DECIMAL (4, 2),

INSERT INTO DemoDecimal (BookName,BookPrice) VALUES ('SQL PROGRAMMING',10.05);

SELECT BookName,BookPrice

In above example we cannot store the value Which exceeds the precision and scale specified in the column definition:

Output: The output of above 4 digit example is

BookName BookPrice

SQL FLOAT Datatype

Conflict can result in floating-point numbers being summarised rather than saved as precise values. The internal representation of a SQL statement may not be the same as a floating-point value written in a SQL statement.

Attempts to treat floating-point numbers in correlations as correct may cause problems. They are also affected by the stage of execution conditions.

These flaws have an impact on the FLOAT and DOUBLE data types.

To define columns, variables, and parameters that store floating-point integers, use the SQL Server FLOAT data type.

Numbers with no set decimal place are referred to be floating point.

When working with scientific values, SQL FLOAT is a good option.


Even if 2.50 is a FLOAT , you may notice that the number isn't exactly recorded in memory as 2.50. Instead, the number output may be 2.499999.

When comparing values with FLOAT, it can be a little challengiang because the internal representation may be inaccurate by one decimal place.

SQL Difference Between DECIMAL And FLOAT Datatype

In below table we discuss the contrast between decimal & float datatype:-

We can save the exact and equal precision point in decimal data type. The approximate precision point is stored using float data types.
The decimal place's position is fixed. The decimal place's position is not set.
You can manage up to 38 digits of precision (including the decimal points) Capable of handling large amounts of data
We can perform such adjustments with the decimal data type. After the decimal point, we can make adjustments to the floating-point number.
When compared to the float, the results are more accurate. Arithmetic operations can lead to precision loss.
It necessitates extra storage spe. Doesn't demand as much storage space
Precision points are required in the decimal data format. For example, decimal precision points should be used for 25.32 and 45.364. The precision point does not need to be defined in the float data type. When we use the float data type to hold the 6 digits, it may store values between 25.32 and 43.365.
The range of decimal data types equates to one byte by default. The floating data type's default range is 24 places.
We can use 128-bit floating-point data type in decimal data type. A single-precision floating data type is one that uses the 32-bit floating-point data type.
Because the result is exact, you can utilise equality tests (= &> operators), number rounding, and so on. As long as the outcome does not exceed the maximum and minimum values allowed. Avoid float equality checks (= &> operators), number rounding, and so on. Also, avoid utilising them in applications that require precision, such as financial applications.
The value will be rounded to the scale s if the input value of DECIMAL contains more digits after the decimal point than the scale s. SQL Server will throw an overflow error if the input value of FLOAT(n) is too large, causing the exponential component to exceed the positive limit.
SQL Server will throw an overflow error if the input value of DECIMAL has more digits before the decimal point than p-s. SQL Server will give you an under-flow error if the input value of FLOAT(n) is too little the exponential component exceeds the negative limit.