mysql怎么存入小数 mysql 存小数

mysql中要存储小数用什么类型数据好?要求精度高就用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数据库是int类型的,现在要改成能输入保存小数点的 , 怎么弄DOUBLE8 个字节
DECIMAL(M,D)M字节(D+2 , 如果MD)
NUMERIC(M,D)
这都支持小数mysql怎么存入小数的
mysql什么字段类型可以存小数和整数DECIMAL和NUMERIC类型在MySQL中视为相同的类型 。它们用于保存必须为确切精度的值,例如货币数据 。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:
DECIMAL(10,2)
在该例子中,10是精度 , 2是标度 。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数
数据库中存储小数的问题 。无论MYSQL还是SQL SERVER,用float类型存放0.55是不会出问题的 , 显示为1可能是相关的客户端软件显示时候的宽度不够,自动进行了四舍五入而已 , 你可以使用MYSQL的命令用SQL显示一下 , 结果有误差,但是值是对的,比如可能显示0.55000000001或者0.54999999999
mysql导出保留0一,数值类型保留小数点后两个0
在存入数据时,应客户需求数值类型,比如钱数,分数等等需要精确到小数点后几位 。
800存入时显示为800.00
方法:在建表时直接定义此数值mysql怎么存入小数的类型为float,double或decimal类型
例如mysql怎么存入小数:
1 create tablenum(2 shuzi float(4,2),3 shuzi2 double(4,2),4 shuzi3 decimal(4,2)5 );
类型(a,b):a指定指定小数点左边和右边可以存储的十进制数字的最大个数,
b指定小数点右边可以存储的十进制数字的最大个数 , 小数位数必须是从 0 到 a之间的值 。默认小数位数是 0 。
此时在插入数据
1 insert into num values(22,33,44);
那么此时显示的数据就是:
22.0033.0044.00
无需手动输入00.
最后说一下
float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位 对最后一位数四舍五入)
double:双精度实型,含字节数为8 , 64bit数值范围-1.7E308~1.7E308(15个有效位 对最后一位数四舍五入 float和double的相乘操作,数字溢出不会报错会有精度的损失)
decimal:数字型 , 128bit,不存在精度损失 , 常用于银行帐目计算 。(28个有效位当对decimal类型进行操作时,数值会因溢出而报错)
二,在存入数据时存入整数 , select 查询时取出带小数.00的数据
同样应客户需求,可能仅仅是因为美观而进行的操作
在定义时定义的就为整形或者其它的数值类型那么在取数据时可以使用round()函数
见表并定义
1 create tablenum(2 shuzi int
3 );
插入数据
insert into num values(22);
取出数据
select round(shuzi,2) fromnum;
或truncate(shuzi,2)

推荐阅读