我使用以下代码:
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”。
答案 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");
}