在存入数据时,应客户需求数值类型,比如钱数,分数等等需要精确到小数点后几位。
800存入时显示为800.00
方法:在建表时直接定义此数值的类型为float,double或decimal类型
例如:
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.00 33.00 44.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)
此时显示为22.00
数字数据类型是不支持这种显示的,或者有但是我没见到过,这样显示违背了我们正常对数字的认识,你可以用字抄符串存储。这样就前面+0了,一般需要到你这种显示的时候都是字段
设定为文本,
还有不知道你是在哪里显示?是知编程后取出显示呢?还是在MYSQL中显示?
如果编程后取出显示的话可以在取出后通转换为字道符串,在判断是否+0
,+几个0等
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)