# SQL FLOAT Vs DECIMAL Datatype

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.

# SQL DECIMAL Datatype

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

**in MySQL.**

`DECIMAL`

**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
FROM
DemoDecimal;

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 PROGRAMMING | 10.05 |

## 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.

**Example:**

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:-

DECIMAL | FLOAT |
---|---|

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. |