DataGrid列中如何去掉小数后的零

    1:在datagridview C#当中,可以使用TrimEnd('0')的方法;但是前提它的数据源中的字段是数字类型。

   例: bomDT.Columns.Add("percent", typeof(decimal));
        bomDT.Columns.Add("leftQty", typeof(decimal));

       dr["percent"] = percent.ToString().TrimEnd('0');

       dr["leftQty"] = leftqty.ToString().TrimEnd('0');


 

    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   行)   
  --
*/

 

 

 

转载于:https://www.cnblogs.com/lbg280/archive/2009/06/10/1500422.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值