妈妈说人生不要错过两样东西:最后一班回家的车和一个深爱你的人!

博客园 首页 新随笔 联系 订阅 管理
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:
 create   function   f_convert(@a   decimal(20,8))   
  
returns   varchar(20)   
  
as   
  
begin   
  
declare   @re   varchar(20),@r2   varchar(20),@i   int   
  
select   @re=convert(varchar(20),@a)   
  ,
@i=charindex('.',@re)   
  ,
@r2=reverse(substring(@re,@i,20))   
  ,
@r2=reverse(substring(@r2,patindex('%[^0]%',@r2),20))   
  ,
@re=left(@re,@i-1)   
  
if   @r2<>'.'   set   @re=@re+@r2   
  
return(@re)   
  
end   
  
go   
    
  
--测试数据   
  declare   @tb   table(a   decimal(20,8))   
  
insert   into   @tb     
  
select   0.20   
  
union   all   select   0.21   
  
union   all   select   0.21989   
    
  
--查询   
  select   a,转换后=dbo.f_convert(a)   from   @tb   
  
go   
    
  
--删除函数   
  drop   function   f_convert   
    
  
/*--测试结果   
  a                                             转换后                                       
  ----------------------   --------------------     
  .20000000                             0.2   
  .21000000                             0.21   
  .21989000                             0.21989   
    
  (所影响的行数为   3   行)   
  --
*/
posted on 2008-01-03 16:58  冯小磊  阅读(3144)  评论(2编辑  收藏  举报