C#解析字符串中的数字

时间:2016-03-25 21:37:35

标签: c# function parsing numbers

我需要转换一个像

这样的字符串
  

0000000002000

  

20.00

输入字符串中的最后两位数字位于小数点后面。目前我正在使用:

string szCena = File.ReadAllText(file.FullName).Replace(" ", "").Replace("-", "");
string szVrednost = "";
bool bFound = false;

foreach (char brojka in szCena)
{
  if (bFound)
  {
    szVrednost = szVrednost + brojka;
  }
  else
  {
    if (brojka != '0')
    {
        bFound = true;
        szVrednost = szVrednost + brojka;
    }
    else
      continue;
  }
}

szVrednost = szVrednost.Insert(szVrednost.Length - 2, ".");

1 个答案:

答案 0 :(得分:1)

您可以使用本机框架方法尝试将数字值转换为输入字符串,执行一些简单的数学除法,然后使用{{3}将数字重新转换为字符串,而不是使用字符串进行所有这些字符串连接。 }

string input = "0000000002001";
decimal  value;
if (decimal.TryParse(input, out value))
{
    value = value / 100;
    string result = value.ToString("0.00");
    Console.WriteLine(result);

}
else
   Console.WriteLine("Input is not a valid number");

请注意,我在您的示例输入中添加了最后一个以显示小数处理