Mysql
 sql >> база данни >  >> RDS >> Mysql

Разлика между float и десетичния тип данни

Това е това, което открих, когато имах това съмнение.

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

Десетичният знак направи точно това, което трябва да направи в тези случаи, съкрати останалите, като по този начин загуби 1/3 част.

Така че за сумите десетичната запетая е по-добра, но за деленията float е по-добра, до определен момент, разбира се. Искам да кажа, че използването на DECIMAL няма да ви даде „аритметика за доказване на неуспех“ по никакъв начин.

Надявам се това да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се справим с грешката за дублиращи се записи?

  2. Как мога да направя SQL сравнение на низове, чувствителни към главни букви в MySQL?

  3. Актуализиране на данни в MySQL база данни

  4. SQL SERVER – SQL_NO_CACHE и ОПЦИЯ (ПРЕКОМПИЛИРАНЕ)

  5. Грешка при миграция на Laravel:Синтактична грешка или нарушение на достъпа:1071 Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 767 байта