我正在使用Sharepoint 2007中的工作流程。在工作流程中,我正在访问代码隐藏的Inforpath,并将一些重复的值添加到Sharepoint列表。
string strProfitMargin = ProfitMargin;
decimal margin1 = decimal.Parse(strProfitMargin);
listItem["Test9"] = Math.Round(margin1, 2).ToString();
假设ProfitMargin我得到一个值"0.4230769230769231"
。
Decimal.Parse
方法返回4230769230769231
而没有小数点。最终Math.Round也无法正常工作。这在我的机器上完美运行。但在QA服务器中它不起作用。请帮助我解释为什么decimal.Parse方法不工作? Double.Parse()返回一个没有小数的值。
提前致谢!
答案 0 :(得分:7)
我强烈怀疑你是在一台没有使用.
作为小数点的文化的机器上运行。
明确指定文化,例如对于不变的文化
decimal margin1 = decimal.Parse(strProfitMargin, CultureInfo.InvariantCulture);