总和不会添加小数位(双打)

G G*_* Gr 0 c# soap web-services sum

当我调用此方法时,它只返回小数位前的数字,例如:

1

2

3

= 6
Run Code Online (Sandbox Code Playgroud)

这很好,但是当我尝试:

1.5

2

3.5

= 6 
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到小数位的总和?

public class Service1 : System.Web.Services.WebService
{

    [WebMethod]


    public string CalculateSum(List<int> listDouble)
    {
        return listDouble.Sum().ToString();


    }
}
Run Code Online (Sandbox Code Playgroud)

}

如果我使用公共字符串CalculateSum(List<double> listDouble),结果始终为0.

无论我输入什么.

这就是我传递信息的方式:

        {
            CalculateSumOfList.ServiceReference1.Service1SoapClient client = new CalculateSumOfList.ServiceReference1.Service1SoapClient();
            CalculateSumOfList.ServiceReference1.ArrayOfInt arrayOfInt = new CalculateSumOfList.ServiceReference1.ArrayOfInt();
            arrayOfInt.AddRange(listDouble.Select(d => (int)d).ToList());

string result = client.CalculateSum(arrayOfInt);
label1.Text = Convert.ToString(result);




                }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

看看你的参数:

public string CalculateSum(List<int> listDouble)
Run Code Online (Sandbox Code Playgroud)

这是一个整数列表,尽管名称.如果你认为它是双打列表,你应该改变类型:

public string CalculateSum(List<double> listDouble)
Run Code Online (Sandbox Code Playgroud)

你也需要取消注释你的正确Sum实现...返回调用ToString返回值的结果Enumerable.Select真的不会做你想要的.

  • @Garritt:更改参数类型后,您是否更新了调用代码生成的代理? (2认同)