当前位置:编程学习 > JAVA >>

to_char 去0问题

 N_TGT_FLD10  是number(6,20) 格式
to_char(N_TGT_FLD10) 想用来小数点后多余0  但是如 0.610000 会显示成.61
目的是显示为 0.61   想只去掉小数点右边多余0 而不去小数点左边表示个位的0
PS 数据有大于1的小数 to_char 去0问题 --------------------编程问答-------------------- 呵呵,解决这个问题了没有? --------------------编程问答-------------------- 原来to_char 也有重载,不指定第二个参数 就变成61了。
可以这样:
 select ltrim(rtrim(to_char(0.610000, '99990.000000'), '0') , ' ') as num from dual 

to_char(0.610000, '99990.000000') 你的小数点后面有多少位 转换的参数后面也相应多少位,确保精度不丢失。
并且这个99990.000000是有讲究的,我刚刚测试了发现,小数点后面只能制定0,否则无效的数字模型,多了不要紧,少了就丢失了,另外前面的99990对应小数前面,多了不要紧,少了变成####,自己可以试试看。
rtrim()去掉右边多余的0
ltrim()去掉左边多余的空格
参考:http://www.linuxidc.com/Linux/2012-01/52558.htm --------------------编程问答--------------------
引用 2 楼 ch656409110 的回复:
原来to_char 也有重载,不指定第二个参数 就变成61了。
可以这样:
 select ltrim(rtrim(to_char(0.610000, '99990.000000'), '0') , ' ') as num from dual 

to_char(0.610000, '99990.000000') 你的小数点后面有多少位 转换的参数后面也相应多少位,确保精度不丢失。
并且这个99990.000000是有讲究的,我刚刚测试了发现,小数点后面只能制定0,否则无效的数字模型,多了不要紧,少了就丢失了,另外前面的99990对应小数前面,多了不要紧,少了变成####,自己可以试试看。
rtrim()去掉右边多余的0
ltrim()去掉左边多余的空格
参考:http://www.linuxidc.com/Linux/2012-01/52558.htm

这个行
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,