1

如何在 C# 中转换43961529(10%)为?43,961,529.00

我有一个值43961529(10%)DataTableDataColumn想将其转换为43,961,529.00 (10%).

括号((10%))之间是市场份额。

我正在使用 Visual Studio 2008,C#。

4

2 回答 2

2

使用正则表达式,您可以从字符串中获取数字部分。然后您可以将其解析为整数,以您喜欢的任何方式对其进行格式化,然后将字符串重新组合在一起。

public static string Format(string input)
{
    Regex regex = new Regex(@"^(\d+)(.*)$");
    var match = regex.Match(input);
    if (match.Success)
    {
        input = Int32.Parse(match.Groups[1].Value).ToString("N2");
        input += " " + match.Groups[2].Value;
    }
    return input;
}

你像这样使用它:

string input = "43961529(10%)";
string result = Format(input);      // "43,961,529.00 (10%)"
于 2013-03-15T13:32:06.393 回答
0

您应该查看 ToString() 覆盖

decimal num = 43961529;
string val = num.ToSTring("N2");

或者

string val = num.ToSTring("0.00");

有很多方法可以对字符串的输出进行排序

于 2013-03-15T13:24:39.700 回答