mysql中小数点用decimal(x,y)进行存储,
示例如下,
1、创建测试表,create table test_decimal(id int, fee_value decimal(20,3))
2、插入测试数据,
insert into test_decimal values(1,12.2)
insert into test_decimal values(3,33.789)
insert into test_decimal values(6666,555.332)
3、查询表中所有记录,select * from test_decimal t
4、小数转整,可以用floor或round函数,select t.*, floor(fee_value) as fee1, round(fee_value) fee2 from test_decimal t
要求精度高就用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类型进行 *** 作时,数值会因溢出而报错。
mysql字段decimal(9,2)中9是定点精度,2是小数位数。
存在这么一个公式:decimal(a,b)。
其中a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38;
b指定小数点右边可以存储的十进制数字的最大个数,小数位数必须是从 0 到 a之间的值,默
认小数位数是 0。
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)