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
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**/
/*--测试结果
a 转换后
---------------------- --------------------
.20000000 0.2
.21000000 0.21
.21989000 0.21989
(所影响的行数为 3 行)
--*/