C#是否有内置函数将格式化的String转换回Number?

Lif*_*fes 2 c# asp.net format numbers

如何将格式化数字的字符串转换回数字?

  Decimal percent = 55.76;
  String strPercent = String.Format("{0:0.0}%", percent);
  Decimal dollars = 33.5;
  String strDollars = String.Format("{0:C}", dollars);
Run Code Online (Sandbox Code Playgroud)

稍后说,我希望得到百分比和美元价值,作为数字.有没有内置的方法来使用C#和asp.net做到这一点?我知道我如何使用正则表达式和一个字符串函数,但我从http://msdn.microsoft.com/en-us/library/ks098hd7(vs.71).aspx读到了一个Decimal.Parse()函数.

是否有内置函数来执行此操作?如果是,我该如何使用它?

suk*_*kru 5

int.Parse,double.Parse等是你的朋友.

编辑:错过了标点符号部分.将重新调查并提出更好的建议.

编辑2:事实证明int.Parse实际上有一个重载采取格式字符串:http://msdn.microsoft.com/en-us/library/c09yxbyt.aspx


Erg*_*wun 5

使用Decimal.Parse,您可以传递一个System.Globalization.NumberStyles来控制字符串的解析方式.这样可以轻松地将货币字符串转换回小数.不幸的NumberStyles是不支持百分比,因此您仍然需要单独删除百分比符号.

        Decimal percent = 55.76M;
        String strPercent = String.Format("{0:0.0}%", percent);
        Decimal dollars = 33.5M;
        String strDollars = String.Format("{0:C}", dollars);

        Decimal parsedDollars = Decimal.Parse(strDollars, NumberStyles.Currency);

        Decimal parsedPercent = Decimal.Parse(
            strPercent.Replace(
                NumberFormatInfo.CurrentInfo.PercentSymbol,
                String.Empty));
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅NumberStyles文档.