将填充的字符串转换为c#中的数字

时间:2012-05-03 15:57:17

标签: c#

我使用以下代码:

string new = old.Substring(0,2).TrimStart('0') + "." + old.Substring(2,2).TrimStart('0');

转换如下:

0101 >> 1.1
99.10 >> 99.1
99.01 >> 99.01

问题是以下转换无法正常运行:

0100 >> 1.0

有没有一种简单的方法可以解决这个问题。我无法理解为什么它没有正确转换。对我来说,在它之后加上“.0”是很重要的。当我运行上述所有内容时,我看到的是“1”。

2 个答案:

答案 0 :(得分:0)

TrimStart将始终删除字符串开头的所有0。所以你的第二部分最终成为:

"00".TrimStart('0')

总是会产生空字符串。

请尝试相反,以确保始终获得0:

string new = old.Substring(0,2).TrimStart('0') + "." + 
             old.Substring(2,2).TrimStart('0').PadLeft(1, '0');

答案 1 :(得分:0)

你可以调用Int32.TryParse()然后除以100吗?

string s = "0101";
int n;
if(int.TryParse(s, out n))
{
  decimal d = n / 100M;
  string x = d.Format("f2");
}