MySql 数据类型 - 小数型

  • 小数类型分为 浮点小数定点小数

  • 浮点小数

    • 浮点小数是“不精确的小数”,包括 floatdouble
      float:占用4字节存储空间,可称为“单精度浮点数”,约7位有效数字。
      double:占用8字节存储空间,可称为“双精度浮点数”,约17位有效数字。

  • 定点小数

    • 浮点小数是“精确的小数”一一它通过内部技巧,突破了“有些小数无法用二进制精确表示”的局限。
    • 其设定方式通常是这样的: decimal(M, D);
      其中M表示该小数总位数(包含小数点前后部分,最大长度65),D表示该小数的小数点后的位数。

  • 使用效果

    定义三个字段分别为 float、double 和 decimal 类型,并都插入数字 123456789.123456789123456789 显示结果,注意三者保留数值精度也不一样。

    mysql> desc user;
    +-------+----------------+------+-----+---------+-------+
    | Field | Type           | Null | Key | Default | Extra |
    +-------+----------------+------+-----+---------+-------+
    | x1    | float          | YES  |     | NULL    |       |
    | x2    | double         | YES  |     | NULL    |       |
    | x3    | decimal(23,14) | YES  |     | NULL    |       |
    +-------+----------------+------+-----+---------+-------+
    mysql> insert into user (x1, x2, x3) values (123456789.123456789123456789, 123456789.123456789123456789, 123456789.123456789123456789);
    mysql> select * from user;
    +-----------+--------------------+--------------------------+
    | x1        | x2                 | x3                       |
    +-----------+--------------------+--------------------------+
    | 123457000 | 123456789.12345679 | 123456789.12345678912346 |
    +-----------+--------------------+--------------------------+
    

你可能感兴趣的:(Mysql,mysql,sql)