将十进制货币转换为逗号分隔值

tro*_*onc 0 .net c#

我从webservice获得以下字符串:

12.95

要么

1,200.99

是否有选项可以在不操作字符串的情况下将这些值转换为以下值?

12,95

要么

1200,99

我尝试了一些文化选项,但没有把它弄好......

编辑

我试过这个:

    //return string.Format( "{0:f2}", Convert.ToDecimal( price ) );
    //return string.Format(CultureInfo.GetCultureInfo("de-de"), "{0:0}", price);



    NumberFormatInfo format = new System.Globalization.NumberFormatInfo();

    format.CurrencyDecimalDigits = 2;
    format.CurrencyDecimalSeparator = ",";
    format.CurrencyGroupSeparator = "";

    return decimal.Parse(price).ToString(format);
Run Code Online (Sandbox Code Playgroud)

Met*_*ght 7

var input = "1,200.99";

//Convert to decimal using US culture (or other culture using . as decimal separator)
decimal value = decimal.Parse(input, CultureInfo.GetCultureInfo("en-US"));

//Convert to string using DE culture (or other culture using , as decimal separator)
string output = value.ToString(CultureInfo.GetCultureInfo("de-DE"));

Console.WriteLine(output); //1200,99
Run Code Online (Sandbox Code Playgroud)