前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL浮点数与定点数

MySQL浮点数与定点数

作者头像
秋白
发布2019-02-21 09:57:41
1.2K0
发布2019-02-21 09:57:41
举报
文章被收录于专栏:java小白java小白

浮点数一般用于表示含有小数部分的数值。当一个字段被定义为浮点类型后,如果插入数据的精度超过该列定义的实际精度,则插入值会被四舍五入到实际定义的精度值,然后插入,四舍五入的过程不会报错。在MySQL中float和double用来表示浮点数。

这里写图片描述
这里写图片描述

定点数不同于浮点数,定点数实际上是以字符串形式存放,所以定点数可以更精确地保存数据。如果实际插入的数值精度大于实际定义的精度,则MySQL会进行警告(默认的SQLMode下),但是数据按照实际精度四舍五入后插入;如果SQLMode是在TRADITIONAL(传统模式)下,则系统会直接报错,导致数据无法插入。在MySQL中,decimal(或numberic)用来表示定点数。

这里写图片描述
这里写图片描述

浮点数与定点数的区别,看一个例子

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

f列的值由1310.72.32变成了131.072.31,这里上面的数值在使用单精度浮点数表示时,产生了误差。这是浮点数特有的问题。因此在精度要求比较高的应用中(比如货币)要使用定点数而不是浮点数来保存数据

在今后关于浮点数和定点数的应用中,需要考虑到以下几个原则

  1. 浮点数存在误差问题
  2. 对货币等,对精度敏感的数据,应该用定点数表示或存储
  3. 在编程中,如果用到浮点数,要特别注意误差问题,并尽量避免做浮点数比较
  4. 要注意浮点数中一些特殊值的处理
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年01月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档