MySql 数据类型 - 小数型

本文探讨了浮点数(float和double)与定点数(decimal)在MySQL中的表现。浮点数如float和double在存储时存在精度损失,而decimal通过特定方式提供更精确的存储。实验结果显示,当插入相同数字时,float显示为123457000,double显示到小数点后15位,而decimal能精确到小数点后14位。这表明在对精度有严格要求的场景下,decimal是更好的选择。
摘要由CSDN通过智能技术生成
  • 小数类型分为 浮点小数定点小数

  • 浮点小数
    • 浮点小数是“不精确的小数”,包括 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 |
    +-----------+--------------------+--------------------------+
    
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值