这个问题,直接在源头解决;
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、虚拟空间、营销软件、网站建设、京口网站维护、网站推广。
Mysql数据库表里面,设置你要取整的字段的数据类型为int,即可
不用写进去是小数,用的时候再取整,这么麻烦
avg之后用一些函数可以去掉,看你是四舍五入,还是什么要求? 1.四舍五入 round(123.5)2.舍去小数 floor(123.5)3.如果小数部分有值就进一 ceil(123.5) 或者 ceiling(123.5)
写个函数 自己调用处理就行了
CREATE FUNCTION `NewProc`(format_vale VARCHAR(100))
RETURNS varchar(100)
BEGIN
DECLARE dec_number VARCHAR(4000);
DECLARE dec_number_vale VARCHAR(4000);
SET dec_number = '';
SET dec_number_vale = CAST(format_vale AS CHAR);
WHILE dec_number_vale IS NOT NULL DO
-- 剪切字符串
SET dec_number = right(dec_number_vale,1);
IF dec_number = '0' || dec_number= '.' THEN
SET dec_number_vale = LEFT(dec_number_vale ,LENGTH(dec_number_vale)-1);
ELSE
RETURN dec_number_vale;
END IF;
END WHILE;
END;
写个函数 自己调用处理就行了CREATE FUNCTION `NewProc`(format_vale VARCHAR(100)) RETURNS varchar(100)BEGIN DECLARE dec_number VARCHAR(4000); DECLARE dec_number_vale VARCHAR(4000); SET dec_number = ''; SET dec_number_vale = CAST(format_vale AS CHAR); WHILE dec_number_vale IS NOT NULL DO -- 剪切字符串 SET dec_number = right(dec_number_vale,1); IF dec_number = '0' || dec_number= '.' THEN SET dec_number_vale = LEFT(dec_number_vale ,LENGTH(dec_number_vale)-1); ELSE RETURN dec_number_vale; END IF; END WHILE;END;
就是你插入数据时会保存到小数点后几位。比如插入数据(double) 0.1111,小数点那填的是2 的会最后保存的是0.11.
char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:
char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)