亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C#中函數怎樣去掉末尾的0和小數點?

C#中函數怎樣去掉末尾的0和小數點?

C#
HUH函數 2018-11-20 09:05:01
C#中函數怎樣去掉末尾的0和小數點
查看完整描述

1 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

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



查看完整回答
反對 回復 2018-12-07
  • 1 回答
  • 0 關注
  • 1897 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號