小编Jea*_*ine的帖子

TryParse失败,带负数

我在让TryParse正常工作时遇到了问题.我有一个我几乎确定有效的值列表(因为它们来自我们系统中的另一个组件)但我想确保有适当的错误处理.

以下是我的值的示例列表:

20.00
20.00
-150.00

这是我最初写的方法:

 private decimal CalculateValue(IEnumerable<XElement> summaryValues)
        {
            decimal totalValue = 0;

            foreach (XElement xElement in summaryValues)
            {
                decimal successful;
                Decimal.TryParse(xElement.Value, out successful);
                if (successful > 0)
                    totalValue += Decimal.Parse(xElement.Value);
            }
            return totalValue;
        }
Run Code Online (Sandbox Code Playgroud)

变量'success'在-150.00返回false,所以我添加了NumberStyles:

private decimal CalculateValue(IEnumerable<XElement> summaryValues)
        {
            decimal totalValue = 0;

            foreach (XElement xElement in summaryValues)
            {
                decimal successful;
                Decimal.TryParse(xElement.Value, NumberStyles.AllowLeadingSign, null, out successful);
                if (successful > 0)
                    totalValue += Decimal.Parse(xElement.Value, NumberStyles.AllowLeadingSign);
            }
            return totalValue;
        }
Run Code Online (Sandbox Code Playgroud)

但是,现在我在那里有NumberStyles,没有数字会解析!将IFormatProvider设置为null我感觉很好,因为这都在我们的系统中.有谁看到我可能做错了什么?

c# tryparse

7
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

tryparse ×1