-1

我正在使用以下代码:

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”。

4

2 回答 2

0

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

string s = "0101";
int n;
if(int.TryParse(s, out n))
{
  decimal d = n / 100M;
  string x = d.Format("f2");
}
于 2012-05-03T16:04:59.820 回答
0

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

"00".TrimStart('0')

这将始终产生空字符串。

试试这个,以确保你总是得到那个 0:

string new = old.Substring(0,2).TrimStart('0') + "." + 
             old.Substring(2,2).TrimStart('0').PadLeft(1, '0');
于 2012-05-03T16:00:26.943 回答