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

时间:2011-04-10 23:55:39

标签: c# asp.net numbers format

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

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分: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));

有关详细信息,请参阅NumberStyles documentation