如何将格式化数字的字符串转换回数字?
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()函数。
是否有内置功能来执行此操作?如果是,我该如何使用它?
答案 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。