将货币 $232,680.00 转换为十进制
Convert currency $232,680.00 to decimal
从2,680.00
获取十进制值的最佳方法是什么?没有正则表达式是否可行。
这也行不通-
decimal.TryParse(Response.assess_market_value, NumberStyles.Currency, CultureInfo.InvariantCulture, out marketTotalValue);
您可以将 AllowCurrencySymbol
, AllowDecimalPoint
and AllowThousands
styles and use a culture that has $
as a CurrencySymbol
组合成 en-US
var s = "2,680.00";
decimal d = decimal.Parse(s, NumberStyles.AllowCurrencySymbol |
NumberStyles.AllowDecimalPoint |
NumberStyles.AllowThousands,
CultureInfo.GetCultureInfo("en-US"));
或更简单地使用 NumberStyles.Currency
而不是包含这些样式。
decimal d = decimal.Parse(s, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"));
您的代码中的问题是 InvariantCulture
具有 ¤
(即货币符号 (U+00A4
))而不是 $
作为 CurrencySymbol
。如果您将 InvariantCulture
更改为 CultureInfo.GetCultureInfo("en-US")
,您的代码也可以正常工作。
en-US
文化完全适合您的字符串,因为它有 .
作为小数点分隔符,,
作为千位分隔符。
约有:
decimal.Parse("2,680.00", NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"))
从2,680.00
获取十进制值的最佳方法是什么?没有正则表达式是否可行。
这也行不通-
decimal.TryParse(Response.assess_market_value, NumberStyles.Currency, CultureInfo.InvariantCulture, out marketTotalValue);
您可以将 AllowCurrencySymbol
, AllowDecimalPoint
and AllowThousands
styles and use a culture that has $
as a CurrencySymbol
组合成 en-US
var s = "2,680.00";
decimal d = decimal.Parse(s, NumberStyles.AllowCurrencySymbol |
NumberStyles.AllowDecimalPoint |
NumberStyles.AllowThousands,
CultureInfo.GetCultureInfo("en-US"));
或更简单地使用 NumberStyles.Currency
而不是包含这些样式。
decimal d = decimal.Parse(s, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"));
您的代码中的问题是 InvariantCulture
具有 ¤
(即货币符号 (U+00A4
))而不是 $
作为 CurrencySymbol
。如果您将 InvariantCulture
更改为 CultureInfo.GetCultureInfo("en-US")
,您的代码也可以正常工作。
en-US
文化完全适合您的字符串,因为它有 .
作为小数点分隔符,,
作为千位分隔符。
约有:
decimal.Parse("2,680.00", NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"))