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

Какво се случва с Mysql float?

Когато умножите по 1 , резултатът се преобразува в DOUBLE . Това има по-голяма точност и в резултат можете да видите грешката в десетичното приближение. Можете да видите същото, като присвоите FLOAT колона към DOUBLE колона.

CREATE TABLE `my_table` (
  `my_float_col` float,
  `my_double_col` double
);
INSERT INTO my_table (my_float_col) values (1.2355);
UPDATE my_table SET my_double_col = my_float_col;
SELECT my_float_col, my_double_col, my_float_col * 1 FROM my_table;
+--------------+--------------------+--------------------+
| my_float_col | my_double_col      | my_float_col * 1   |
+--------------+--------------------+--------------------+
|       1.2355 | 1.2354999780654907 | 1.2354999780654907 |
+--------------+--------------------+--------------------+

Не съм много сигурен защо връща DOUBLE от умножението, защото документацията казва:

Но е ясно какво се случва.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на функциите password_hash и password_verify на PHP 5.5

  2. Не може да се получи достъп до MySql root потребител, дори след задаване на паролата през безопасен режим в терминала на Linux

  3. PIG UDF в JAVA ГРЕШКА 1070

  4. PHP масивът няма да се запълни с mysql данни

  5. Как мога да съхранявам масив от булеви стойности в база данни на MySql?