sql >> データベース >  >> RDS >> Mysql

Mysql floatはどうなっていますか?

    1を掛けるとき 、結果はDOUBLEに変換されています 。これはより正確であり、その結果、10進近似の誤差を見ることができます。 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. MySQLレプリケーションの文字セット

    2. SQL結合:SQL ANSI標準の将来(ここでvs結合)?

    3. 誰もがクラウドに移行していますか?

    4. Rails 3、ActiveRecord、PostgreSQL-.uniqコマンドが機能しませんか?