avg之后用一些函数可以去掉,看你是四舍五入,还是什么要求? 1.四舍五入 round(123.5)2.舍去小数 floor(123.5)3.如果小数部分有值就进一 ceil(123.5) 或者 ceiling(123.5)
调兵山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
CREATE TABLE test (a DECIMAL(18,1))
INSERT INTO dbo.test
( a )
SELECT 12.8
UNION ALL
SELECT 1.5
SELECT * FROM test
SELECT CASE WHEN LEN(a)=4 THEN '00'+REPLACE(a,'.','')
WHEN LEN(a)=3 THEN '000'+REPLACE(a,'.','')
ELSE '' END
FROM test
-------------------------
00128
00015
这是给你举个例子,因为你可能加的‘0’不一样,就是根据位数来判断下就好了
这个问题,直接在源头解决;
Mysql数据库表里面,设置你要取整的字段的数据类型为int,即可
不用写进去是小数,用的时候再取整,这么麻烦
写个函数 自己调用处理就行了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;
你把数据库的字段类型改成INT,再或者就只能判断了.
if(substr($row["W"], -2) == '00'){
$value = explode('.',$row["W"]);
echo $value [0];
}
写个函数 自己调用处理就行了
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;