Mysql
 sql >> Base de données >  >> RDS >> Mysql

Différence entre le type de données flottant et décimal

Ceci c'est ce que j'ai trouvé quand j'ai eu ce doute.

mysql> create table numbers (a decimal(10,2), b float);
mysql> insert into numbers values (100, 100);
mysql> select @a := (a/3), @b := (b/3), @a * 3, @b * 3 from numbers \G
*************************** 1. row ***************************
  @a := (a/3): 33.333333333
  @b := (b/3): 33.333333333333
@a + @a + @a: 99.999999999000000000000000000000
@b + @b + @b: 100

La décimale a fait exactement ce qui est censé faire dans ces cas, elle a tronqué le reste, perdant ainsi la partie 1/3.

Donc, pour les sommes, la décimale est meilleure, mais pour les divisions, le flottant est meilleur, jusqu'à un certain point, bien sûr. Je veux dire, l'utilisation de DECIMAL ne vous donnera en aucun cas une "arithmétique infaillible".

J'espère que cela t'aides.