问题描述
我在使用decimal.parse将字符串转换为十进制值时遇到一些问题.这是我的代码行:
I am having some problems converting string to decimal values with decimal.parse.This is the line of code I have:
fixPrice = decimal.Parse(mItemParts.Groups["price"].Value.Replace("$", "").Replace(" ", "").Replace("usd", ""));
我要转换的值是:'$ 779.99'
The value from which I am trying to convert is: '$779.99'
然后,一旦解析为十进制,我得到的值是:77999.
Then once the parsing to decimal happens, I am getting this value: 77999.
我希望获得779.99,而不是77999.在此先感谢Laziale
I would like to get 779.99 instead of 77999.Thanks in advance, Laziale
包含的正则表达式:"@" \ [^ \"] +?)\" [[^〜] +?\] +?src = \"((?[^ \"] +?)\""[^>] +?title = \"(?[^^"] +?)\""[^〜] +?price \">(?[^ \<] +?)\< [^〜] +?\(?[^ \<] +?)\
Regex included: "@"\[^\""]+?)\""[^~]+?\]+?src=\""(?[^\""]+?)\""[^>]+?title=\""(?[^\""]+?)\""[^~]+?price\"">(?[^\<]+?)\<[^~]+?\(?[^\<]+?)\
推荐答案
我会使用 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
}
这篇关于在C#中将字符串转换为十进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!