iis web服务或什么,更改方法结果
问题描述:
我有一个关于iis的web服务。服务必须返回像34.56字符串值。因为在我的本地服务中返回这个值,但是当我在iis服务器上尝试这种方法时,methot返回34560000. 这个问题的原因是什么?iis web服务或什么,更改方法结果
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
使用当前线程文化。 您可能在您的系统上使用不同的语言环境。
解决办法是通过调用Convert.ToDouble
超载这需要IFormatProvider
作为参数使用适当的培养:在2台机器所使用
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
可能不同的区域,和'Convert.ToDouble'使用当前线程培养。尝试使用'Convert.ToDouble(s,CultureInfo.InvariantCulture)'或任何你需要的文化 –
耶看起来是一个语言环境问题 –
非常感谢你Zdeslav Vojkovic :)它的工作原理。 – Kerem