iis web 服务或什么,更改方法结果

iis web service or what, change method result

我在 iis 上有一个网络服务。服务必须 return 喜欢 34.56 字符串值。因为在我的本地服务中 return 这个值,但是当我在 iis 服务器上尝试这个方法时 methot return 34560000。 这个问题是什么原因?

 public string GetTotal(string a, string b)
    {
        double total= 0;
        List<BorcLite> bList = GetTotalList(a, b);

        if (bList.Count == 0)
            return total.ToString();

        if (bList[0].resultCode != "0")
            return bList[0].resultCode; 

        foreach (BorcLite record in bList)
        {
            total+= Convert.ToDouble(record.totalBill);
        }
        return total.ToString();
    }

Convert.ToDouble 使用当前线程文化。 您可能在系统上使用了不同的语言环境。

解决方案是通过调用以 IFormatProvider 作为参数的 Convert.ToDouble 的重载来使用适当的区域性:

string s = "34,56000";
double d = Convert.ToDouble(s); // my default US -> 3456000
d = Convert.ToDouble(s, CultureInfo.InvariantCulture); // -> 3456000
d = Convert.ToDouble(s, CultureInfo.GetCultureInfo("en-US")); // -> 3456000
d = Convert.ToDouble(s, CultureInfo.GetCultureInfo("de-DE")); // -> 34.56