Decimal.Parse/Double.Parse返回不带小数点的值

SPK*_*Kan 4 c# sharepoint sharepoint-2007

我正在使用Sharepoint 2007中的工作流程.在工作流程中,我正在访问代码隐藏的Inforpath表单,并将一些重复发生的值添加到Sharepoint列表.

string strProfitMargin = ProfitMargin;

decimal margin1 = decimal.Parse(strProfitMargin);

listItem["Test9"] = Math.Round(margin1, 2).ToString();
Run Code Online (Sandbox Code Playgroud)

假设ProfitMargin我得到一个值"0.4230769230769231".

Decimal.Parse方法返回4230769230769231没有小数点.最终Math.Round也无法正常工作.这在我的机器上完美运行.但在QA服务器中它不起作用.请帮助我解释为什么decimal.Parse方法不工作?Double.Parse()的相同方式返回一个没有小数的值.

提前致谢!

Jon*_*eet 7

我强烈怀疑你是在一台机器上运行,这种机器的文化不能.用作小数点.

明确指定文化,例如指定不变文化

decimal margin1 = decimal.Parse(strProfitMargin, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)