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

本文关键字:转换 数字 字符串 填充 | 更新日期: 2023-09-27 18:33:09

我使用以下代码:

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 之后加上".0"很重要。当我运行上述内容时,我看到的只是"1"。

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

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

"00".TrimStart('0')

这将始终产生空字符串。

请尝试此操作以确保始终获得 0:

string new = old.Substring(0,2).TrimStart('0') + "." + 
             old.Substring(2,2).TrimStart('0').PadLeft(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");
}