IIS Web 服务还是什么,更改方法结果

本文关键字:方法 结果 是什么 Web 服务 IIS | 更新日期: 2023-09-27 18:37:11

我在 IIS 上有一个 Web 服务。 服务必须返回 34.56 字符串值。因为在我的本地服务中返回此值,但是当我在 IIS 服务器上尝试此方法时,methot 返回 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();
    }

IIS Web 服务还是什么,更改方法结果

>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