C# Decimal.Parse/Double.Parse返回一个不带小数点的值
我正在Sharepoint 2007中使用工作流。在工作流中,我访问Inforpath表单,将代码隐藏起来,并向Sharepoint列表添加一些重复值C# Decimal.Parse/Double.Parse返回一个不带小数点的值,c#,sharepoint,sharepoint-2007,C#,Sharepoint,Sharepoint 2007,我正在Sharepoint 2007中使用工作流。在工作流中,我访问Inforpath表单,将代码隐藏起来,并向Sharepoint列表添加一些重复值 string strProfitMargin = ProfitMargin; decimal margin1 = decimal.Parse(strProfitMargin); listItem["Test9"] = Math.Round(margin1, 2).ToString(); 假设ProfitMargin的值为“0.4230762
string strProfitMargin = ProfitMargin;
decimal margin1 = decimal.Parse(strProfitMargin);
listItem["Test9"] = Math.Round(margin1, 2).ToString();
假设ProfitMargin的值为“0.423076230769231”
Decimal.Parse
方法返回不带小数点的423076230769231
。最终是数学。圆也不起作用。这在我的机器里工作得很好。但在QA服务器中,它不起作用。请帮我解释一下为什么decimal.Parse方法不起作用?对于double.Parse()来说,同样的方法是返回一个不带小数的值
提前谢谢 我的强烈怀疑是,您运行的机器的文化不使用
作为小数点
明确指定区域性,例如指定不变区域性
decimal margin1 = decimal.Parse(strProfitMargin, CultureInfo.InvariantCulture);
decimal.Parse(“0.423076230769231”)
为我返回0.423076230769231
。这是在什么文化下运行的?我们的服务器在德国。我想应该是“德德”。这就是原因吗?Thanx是的,很有可能。该区域性使用,
作为十进制分隔符。使用CultureInfo.InvariantCulture
进行分析,或者使用使用,
而不是,
的十进制文本。是的,您是正确的。这起作用了。谢谢。谢谢。我试试这个方法。我们的服务器在德国。但是在Web部件中已经有了Double.Parse()方法,可以很好地工作。谢谢你的回答。