在c#中将字符串转换为十进制

Laz*_*ale 3 c# asp.net decimal visual-studio-2010

我在使用decimal.parse将字符串转换为十进制值时遇到一些问题.这是我的代码行:

fixPrice = decimal.Parse(mItemParts.Groups["price"].Value.Replace("$", "").Replace(" ", "").Replace("usd", ""));     
Run Code Online (Sandbox Code Playgroud)

我尝试转换的价值是:'$ 779.99'

然后一旦解析到十进制,我得到这个值:77999.

我想得到779.99而不是77999.先谢谢,Laziale

正则表达式包括:"@"\ [^ \""] +?)\""[^〜] +?\] +?src = \""(?[^ \""] +?)\""[^ >] +?标题=\""(?[^\""] +?)\ ""[^〜] +?价格\ "">(?[^\<] +?)\ <[^〜] +?\(?[^\<] +?)\

Jam*_*ill 6

我会用Decimal.TryParse():

decimal parsedDecimal = 0;
string yourCurrency = "$779.99";
bool didParse = Decimal.TryParse(yourCurrency,
                                 NumberStyles.Currency,
                                 new CultureInfo("en-US"), out parsedDecimal);

if(didParse) {
    // Parse succeeded
}
else {
    // Parse failed
}
Run Code Online (Sandbox Code Playgroud)

  • "CurrentCulture"可能不是最好的选择. (2认同)