MySQL中的float和decimal类型有什么区别

MySQL中的float和decimal类型有什么区别,第1张

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列做>或 <的比较。

float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,用于定义货币要求精确度高的数据。在数据迁移中,float(M,D)是非标准定义,最好不要这样使用。M为精度,D为标度。

mysql 定义float型数据请参考下列例句:

create table tt (id int,num float) -- 默认精度

alter table tt modify num float(6,2) -- 指定精度

alter table tt modify num float unsigned -- 不带符号

alter table tt modify num float signed  -- 带符号

alter table tt modify num float(6,2) unsigned

alter table tt modify num float(6,2) signed


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8608180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存