我有以下代码:
var totalDecimalList = Regex.Split(total, @"[^0-9\.]+").Where(c => c != "." && c.Trim() != "");
decimal totalDecimal = decimal.Parse(totalDecimalList.First());
通过我的调试 session
totalDecimal = 100 and not 100000
所以“,”显然是问题的原因,第一行中的正则表达式不正确,即
@"[^0-9\.]+")
请问我如何更正此正则表达式以解决逗号问题?
谢谢。
请您参考如下方法:
更好的是,让内置的解析函数为您完成工作:
using System;
using System.Globalization;
namespace StackOverflow_CurrencyParsing
{
class Program
{
static void Main(string[] args)
{
string total = "£100,000.00";
decimal totalDecimal = decimal.Parse(total, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-gb"));
Console.WriteLine($"Total: {totalDecimal}");
Console.ReadKey();
}
}
}
