[译] MySQL 浮点类型介绍 - FLOAT,DOUBLE

原文地址:https://dev.mysql.com/doc/refman/5.5/en/floating-point-types.html

FLOATDOUBLE 类型表示近似值。MySQL 对单精度值使用四个字节,双精度值使用八个字节。

对于 FLOAT,SQL 规范允许在 FLOAT 后面通过括号中的关键字来指定精度(不是指数的范围)。 MySQL 也支持这个精度规范,但精度值仅用于确定存储大小。精度从 0 到 23 表示一个 4 字节的单精度 FLOAT 列,从 24 到 53 表示 8 字节双精度 DOUBLE 列。

MySQL 允许非标准语法:FLOAT(M,D)或 REAL(M,D)或DOUBLE PRECISION(M,D)。(M,D)表示总共可以存储最多 M 位数的值,其中 小数点后可以存 D 位数。 例如,定义为 FLOAT(7,4) 的列在显示时将显示为 -999.9999 。 MySQL 在存储值时执行四舍五入,因此,如果将 999.00009 插入到 FLOAT(7,4) 列中,则近似结果为999.0001。

因为浮点值是近似值而不是作为精确值存储,所以将其精确处理可能会导致一些问题。它们也受平台或实现依赖性的约束。有关更多信息,请参见 第B.5.4.8节“Problems with Floating-Point Values”

为了保证可移植性,在存储近似值时应使用 FLOAT 或 DOUBLE PRECISION,最好不要指定精度或数字位数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 计算机诞生后,数据开始在计算机中存储并计算,并设计出了数据库系统,数据库系统解决的问题:持久化存储,优化读写,保证...
    LittlePy阅读 4,155评论 0 0
  • 背景 在java中float赋值给double,会产生精度问题。 输出为2.0999999046325684。 小...
    我叫小小强阅读 19,424评论 2 23
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 9,471评论 0 19
  • 目录 你若不留我便先走 下一章(二)他就是江淮啊 (一)重逢 我是一个过于要面子的人,酷爱洗脑自己天性淡情,偏偏又...
    郑款款阅读 1,756评论 2 3
  • 宋·吴自牧《梦梁录·育子》载:“其家罗列锦席于中堂,烧香秉烛,金银七宝玩具、文房书籍、道释经卷、秤尺刀剪、升斗戥子...
    書華_阅读 3,085评论 0 0

友情链接更多精彩内容