c#:
  1:如果是textBox等控件值过滤0的话,可以使用TrimEnd('0')的方法;
      eg:this.textBox1.Text.TrimEnd('0'),textBox1值为0.9900,则显示为0.99
  2:使用ToString("g0")的方法
      eg:0.99991000000000000.ToString("g0") 返回的值为0.99991
MSSQL中:
  1:将小数用CAST函数转换
      eg:select cast(0.2000 as real) 返回为 0.2
        但是此方法常常因为转换的精度的问题,是数据与实际数据由差距
   2:使用自定义函数转换
      eg:
去掉小数后面多余的0 create   function   f_convert(@a   decimal(20,8))   
去掉小数后面多余的0  
returns   varchar(20)   
去掉小数后面多余的0  
as   
去掉小数后面多余的0  
begin   
去掉小数后面多余的0  
declare   @re   varchar(20),@r2   varchar(20),@i   int   
去掉小数后面多余的0  
select   @re=convert(varchar(20),@a)   
去掉小数后面多余的0  ,
@i=charindex('.',@re)   
去掉小数后面多余的0  ,
@r2=reverse(substring(@re,@i,20))   
去掉小数后面多余的0  ,
@r2=reverse(substring(@r2,patindex('%[^0]%',@r2),20))   
去掉小数后面多余的0  ,
@re=left(@re,@i-1)   
去掉小数后面多余的0  
if   @r2<>'.'   set   @re=@re+@r2   
去掉小数后面多余的0  
return(@re)   
去掉小数后面多余的0  
end   
去掉小数后面多余的0  
go   
去掉小数后面多余的0    
去掉小数后面多余的0  
--测试数据   
去掉小数后面多余的0
  declare   @tb   table(a   decimal(20,8))   
去掉小数后面多余的0  
insert   into   @tb     
去掉小数后面多余的0  
select   0.20   
去掉小数后面多余的0  
union   all   select   0.21   
去掉小数后面多余的0  
union   all   select   0.21989   
去掉小数后面多余的0    
去掉小数后面多余的0  
--查询   
去掉小数后面多余的0
  select   a,转换后=dbo.f_convert(a)   from   @tb   
去掉小数后面多余的0  
go   
去掉小数后面多余的0    
去掉小数后面多余的0  
--删除函数   
去掉小数后面多余的0
  drop   function   f_convert   
去掉小数后面多余的0    
*/

相关文章: