两种方法,第一种是自己写的,用了循环,从最后一位开始取,一直取到不是0那一位
private decimal GetRidZero(decimal d)
{
if (d == 0)
{
return 0;
}
string s;
int dotIndex = 0;
s = d.ToString();
dotIndex = s.IndexOf('.');
if (dotIndex == -1)
{
return d;
}
int sLen;
sLen = s.Length - 1;
while (s[sLen].Equals('0'))
{
s = s.Substring(0, sLen);
sLen = s.Length - 1;
}
return Convert.ToDecimal(s);
}
调用的时候这样子:
Response.Write("<br>" + GetRidZero(121.20300000M));
Response.Write("<br>" + GetRidZero(114M));
Response.Write("<br>" + GetRidZero(12.231500000M));
Response.Write("<br>" + GetRidZero(109.09M));
Response.Write("<br>" + GetRidZero(0M));
Response.Write("<br>" + GetRidZero(1M));
Response.Write("<br>" + GetRidZero(10M));
第二种方法呢,是用TrimEnd方法,用第二个重载,去掉指定的字符:
Response.Write(d.ToString().TrimEnd('0'));