https://zhuanlan.zhihu.com/p/352503879

今天复习mysql理论知识,在看常用数据类型的时候发现float和decimal类型都是表示小数,就展开搜索学习了一下区别,分享给大家:

表示小数的一共有三种类型:float是单精度,double是双精度,decimal是数字型,它们所占的内存空间不一样,表示的位数也不一样。

1、精度:

  • float单精度小数部分能精确到小数点后面6位,用 32 位二进制进行描述
  • double双精度小数部分能精确到小数点后的15位,,用64位二进制进行描述,比float型更精确

2、占内存及处理速度:

  • float单精度内存占4个字节
  • double双精度内存占8个字节,是float型的两倍,且运算速度也比float慢得多

结论:虽然double型比float型精度高,但由于占内存更大,运算速度慢,且即使是double依然会存在精度损失的问题,且不会报告任何的错误,也不会有任何的异常产生。所以如果涉及到小数计算的话,我们会用到下边的decimal型:

1、精度:

decimal用l128位高精度浮点数,常用于金融运算,不会出现浮点数计算的误差

2、占内存及处理速度:

decimal类型的数据存储形式是,将每9位十进制数存储为4个字节

举个例子:
1)字段decimal(5,2),5-2=3,其中小数部分为2,对应上表1个字节,整数部分为3,对应上表2个字节
2)字段decimal(20,6),20-6=14,其中小数部分为6,就对应上表中的3个字节,而整数部分为14,14-9=5,就是4个字节再加上表中的3个字节

结论:decimal型比浮点型计算精度要高,通常使用更少的空间。所以通常我们在设置小数的时候,都是用的decimal类型。

decimal,float和double的区别是什么?相关推荐

  1. C#中对于float,double,decimal的误解

    C#中对于float,double,decimal的误解 原文:C#中对于float,double,decimal的误解 一直很奇怪C#的预定义数据类型中为什么加了一个decimal,有float和d ...

  2. MySQL FLOAT、DOUBLE、DECIMAL(小数类型)

    MySQL 中使用浮点数和定点数来表示小数. 浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE):定点类型只有一种,就是 DECIMAL. 浮点类型和定点类型都可以用(M, ...

  3. 3、(小数类型)FLOAT、DOUBLE、DECIMAL

    MySQL 中使用浮点数和定点数来表示小数. 浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE): 定点类型只有一种,就是 DECIMAL. 浮点类型和定点类型都可以用(M ...

  4. decimal,float和double的区别

    一直很奇怪C#的预定义数据类型中为什么加了一个decimal,有float和double不就够了吗?今天来挖一挖. 浮点型 Name CTS Type De script ion Significan ...

  5. C#的float、double与decimal

    float 单精度浮点 32bit,double 双精度浮点64bit,decimal是高精度 128bit,浮点型. float double 是 基本类型(primitive type),deci ...

  6. mysql中的double类型_MySQL中float、double、decimal三个浮点类型的区别与总结!

    作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 个人博客: cnblogs.com 前端h ...

  7. mysql中float、double、decimal的区别

    float类型表示单精度浮点数值,double类型表示双精度浮点数值,float和double都是浮点型,而decimal是定点型: MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表 ...

  8. MySQL数据库存储价格金额使用的数据类型中float、double、decimal的区别

    float类型表示单精度浮点数值,double类型表示双精度浮点数值,float和double都是浮点型,而decimal是定点型: MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表 ...

  9. Mysql数值类型之float,double,decimal

    对于小数的表示,MySQL分为两种方式:浮点数和定点数.浮点数包括float(单精度),double(双精度),而定点数只有decimal一种表示.定点数在MySQL内部以字符串的形式存放,比浮点数更 ...

最新文章

  1. 3D中OBJ文件格式详解
  2. 微信小程序的z-index在苹果ios无效
  3. c语言中的jsonpath的处理
  4. 文献学习(part19)--Graph Connectivity In Sparse Subspace Clustering
  5. Winform中用了皮肤控件之后,报错:容量超出了最大容量 参数名:capacity
  6. (转)淘淘商城系列——引用dubbo服务
  7. MongnDB 主从复制
  8. java中类与方法叙述正确的是
  9. 《Ubuntu学习笔记》——如何建立软链接
  10. ECSHOP去掉收货人信息中邮件必填选项
  11. 详解Java设计模式之观察者模式(Observer Pattern)
  12. 微信端和手机qq浏览器输入框不能输入汉字
  13. Pnadas学习day-01
  14. BeanCurrentlyInCreationException: Error creating bean
  15. 2019-mathorcupB题-环形穿梭机调度模型(思路篇)
  16. 矩阵对矩阵求导,标量对矩阵求导,链式法则
  17. 双十一买了吗?来看物联网如何助力快递物流
  18. 一种威胁绝大多数蓝牙设备的攻击载体——BlueBorne
  19. sqoop报错以及解决:Access denied for user 'root'@'172.16.21.22' (using password: YES)
  20. 【Lemon】Python的函数

热门文章

  1. 三国杀开源系列之二105@365
  2. Python的生成器和迭代器
  3. R语言绘图中图片的组合(cowplot、patchwork宏包、layout、par()、gridExtra)
  4. Unity3D GUI Skin
  5. ZOJ Gold Coins2345
  6. SIBT SSHT 2023展位火爆抢定中 共燃建筑空间智慧浪潮
  7. 测试 软通动力软件测试机试_软通动力软件测试笔试题
  8. 安卓最牛教材!2021大厂Android面试经历,吐血整理
  9. openstack-stein.noarch(S版)环境搭建
  10. .net中的泛型全面解析