先将数据转换为numeric类型,保留4位小数点,由零点几变为百分号前边的数字,再转换为varchar类型,然后再加'%'
创新互联建站是专业的庆云网站建设公司,庆云接单;提供做网站、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行庆云网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
如:
select ml as 毛利,sshje as 实收金额,
cast(cast(ml/sshje as numeric(4,4))*100 as varchar(20)) + '%' as 利润率
from chasalldayhz
select 12.23-ceil(12.23) from dual
--结果 -0.77
select substr(12.23-floor(12.23),2,10) from dual;
--这个东西做不到通用没什么价值
--如果
select substr(12.231111111111111-floor(12.231111111111111),2,10) from dual;
--结果不会是231111111111111,而是2311111111
select ltrim(0.55523-floor(0.55523),'0.') from dual;
--这个比较有代表性
--1
select substr(12.25,instr(12.25,'.')+1,length(12.25)) from dual;
--结果 25
--2
select A.a*power(10,length(A.a)-1) from
(select trunc(12.25333,length(12.25333))-trunc(12.25333,0) a from dual) A
--结果 25333
--方法很多的,看你想怎么个实现方法。最好做成函数,通用一点。
select round(a/b,2) from table where c='T';
以上SLQ语句为,
从表table中查询符合c字段值为‘T’的值,
并将值a除以b,得到的结果如果包含小数,则保留两位小数点。
函数round(x[,y])介绍:
【功能】返回四舍五入后的值
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位。
【返回】数字
与此函数相近的函数是trunc(x[,y]) ,返回截取后的值,用法同round(x[,y]),只是不四舍五入
java里面有的…… DecimalFormat
字符含义
一位数字,这一位缺失显示为0。用来补零
#
一位数字, 这一位缺失就不显示
.
小数点,不用多说了吧
,
千位分隔符
E
科学计数法
%
百分比
比如你要的就是#.00 你搜下DecimalFormat 吧。我搞c的……前阵正好项目中java的同事碰到这个
如果 是24.24要怎么弄?你可以判断他是大于1 还是小于1
如果大于1 再判断他是不是整数,如果小于1 判断 等不等于0 然后再用round()函数,或者 substr 就可以了!
SQL SELECT
2 TO_CHAR(123,'9990.00') A,
3 TO_CHAR(5.8,'9990.00') B,
4 TO_CHAR(.46,'9990.00') C
5 FROM
6 dual;
A B C
---------------- ---------------- ----------------
123.00 5.80 0.46
SQL