千家信息网

MySQL中float和decimal类型的作用是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章给大家分享的是有关MySQL中float和decimal类型的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。float
千家信息网最后更新 2026年11月01日MySQL中float和decimal类型的作用是什么

本篇文章给大家分享的是有关MySQL中float和decimal类型的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

 float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,用于定义货币要求精确度高的数据。在数据迁移中,float(M,D)是非标准定义,最好不要这样使用。M为精度,D为标度。
  mysql> create table t1(c1 float(10,2), c3 decimal(10,2));
  Query OK, 0 rows affected (0.02 sec)
  mysql> insert into t1 values(1234567.23, 1234567.23);
  Query OK, 1 row affected (0.01 sec)
  mysql> select * from t1;
  +------------+------------+
  | c1 | c3 |
  +------------+------------+
  | 1234567.25 | 1234567.23 |
  +------------+------------+
  1 row in set (0.02 sec)
  mysql> insert into t1 values(9876543.21, 9876543.12);
  Query OK, 1 row affected (0.00 sec)
  mysql>
  mysql> select * from t1;
  +------------+------------+
  | c1 | c3 |
  +------------+------------+
  | 1234567.25 | 1234567.23 |
  | 9876543.00 | 9876543.12 |
  +------------+------------+
  2 rows in set (0.00 sec)
  不定义fload, double的精度和标度时,存储按给出的数值存储,这于OS和当前的硬件有关。
  decimal默认为decimal(10,0)
  因为误差问题,在程序中,少用浮点数做=比较,可以做range比较。如果数值比较,最好使用decimal类型。
  精度中,符号不算在内:
  mysql> insert into t1 values(-98765430.21, -98765430.12);
  Query OK, 1 row affected (0.01 sec)
  mysql> select * from t1;
  +--------------+--------------+
  | c1 | c3 |
  +--------------+--------------+
  | 1234567.25 | 1234567.23 |
  | 9876543.00 | 9876543.12 |
  | -98765432.00 | -98765430.12 |
  +--------------+--------------+
  3 rows in set (0.00 sec)
  float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。
  decimal 类型可以精确地表示非常大或非常精确的小数。大至 1028(正或负)以及有效位数多达 28 位的数字可以作为 decimal类型存储而不失其精确性。该类型对于必须避免舍入错误的应用程序(如记账)很有用。
  float是浮点数,不能指定小数位。
  decimal是精确数,可以指定精度。
  对mysql 5来说 decimal(p,s)中p最大为65,S最大为30
  decimal数据类型最多可存储 38 个数字,它存储了一个准确(精确)的数字表达法,不存储值的近似值。
  当数据值一定要按照指定精确存储时,可以用带有小数的decimal数据类型来存储数字。
  float和real数据类型被称为近似的数据类型。不存储精确值.当要求精确的数字状态时,比如在财务应用程序中,在那些需要舍入的操作中, 或在等值核对的操作中,就不使用这些数据类型。这时就要用integer、decimal、money或smallmone数据类型。
  在 WHERE 子句搜索条件中(特别是 = 和 <> 运算符),应避免使用float或real列。最好限制使用float和real列做> 或 < 的比较。

以上就是MySQL中float和decimal类型的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

类型 精确 存储 数据 数字 精度 字节 小数 最好 程序 作用 最大 应用程序 数值 更多 标度 点数 知识 篇文章 精确度 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 狮子座互联网科技 友谊互联网络科技 互联网金融和金融科技 互联网科技创新企业排名 深圳国际航运科技和互联网 金融科技与互联网金融相同和不同 互联网金融科技公司干啥的 互联网科技研发水平 世界互联网领先科技成果获奖 山东子淼互联网科技有限公司 互联网金融科技公司的优势 广州千川互联网科技有限公司 美国互联网科技公司 上海互联网科技公司ppt 上海乐五互联网科技有限公司 容联科技互联网电商 同城互联网络科技 现代互联网科技公司 科技互联网专业务虚会材料 河南云网互联网络科技有限公司 江苏根荣互联网科技 互联网科技缩写 湖南洣水互联网科技有限公司扣款 银川新华互联网科技职业技术培训学校图片 互联网媒体平台算高科技产业 健康食品互联网创新科技园项目 互联网公司黑科技创始人 互联网在线教育科技创业 广东鹅鹅鹅互联网科技有限公司
0