Mysql中设置小数点用什么数据类型 decimal

Mysql中设置小数点用什么数据类型 decimal,第1张

要求精度高就用decimal

审题错了...

简单写下区别:

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)

double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)

decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

numberic

===

decimal

float

f

=

345.98756f//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。

double

d=345.975423578631442d//结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。

注:float和double的相乘 *** 作,数字溢出不会报错,会有精度的损失。

decimal

dd=345.545454879.....//可以支持28位,对最后一位四舍五入。

注:当对decimal类型进行 *** 作时,数值会因溢出而报错。

在SQL Server中,实际上小数数值只有两种数据类型:float 和 decimal,分别是近似数值和精确数值。

float 表示近似数值,存在精度损失,数据类型是 float(n),n是可选的,默认类型是float(53),占用8bytes。虽然n的取值范围是1-53,实际上,float 只能表示两种类型float(53) 和 float(24),分别占用 8Bytes 和 4Bytes。

decimal不存在精度损失,数据类型decimal(p,s) 需要分别指定小数的最大位数(p)和小数位的数量(s)。decimal 数据类型的最大精度为 38。即decimal 数据类型最多可以存储 38位数字,所有这些数字均可位于小数点后面。decimal 数据类型存储精确的数字表示形式,没有近似值。

扩展资料:

双精度(double precision)数据类型等价于 float(53),real等价于float(24),numeric是 decimal的同义词,应该避免在程序中直接使用 double precision、real和numeric,而是用 float(24) 、float(53)和decimal 代替。

float是近似数值,存在精度缺失;decimal是精确数值,不存在精度损失。当数值不允许精度丢失时,使用 decimal数据类型存储数据。在计算小数的除法时,SQL Server 内部隐式升级数据类型,根据小数数值的数据类型,就近向float(24) 或float(53)转换。

在创建表的时候设置小数位就可以。

如图:

其中,将工资字段设置为数字,下方的属性,字段大小选择“单精度型”,小数位数则代表小数点后边的位数。

输入数据:

单精度:保存从-3.402823E38 到-1.401298E-45 的负值,从 1.401298E-45 到 3.402823E38 的正值。可以有7位小数;占4 个字节。


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

原文地址: http://outofmemory.cn/sjk/6669015.html

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

发表评论

登录后才能评论

评论列表(0条)

保存