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

时间:2013-06-04 15:39:07

标签: 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.4230769230769231"

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

提前致谢!

1 个答案:

答案 0 :(得分:7)

我强烈怀疑你是在一台没有使用.作为小数点的文化的机器上运行。

明确指定文化,例如对于不变的文化

decimal margin1 = decimal.Parse(strProfitMargin, CultureInfo.InvariantCulture);