4

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() の同じ方法は、小数点なしで値を返します。

前もって感謝します!

4

1 に答える 1

7

.私の強い疑いは、小数点として使用しない文化を持つマシンで実行していることです。

カルチャを明示的に指定します。たとえば、インバリアント カルチャに指定します。

decimal margin1 = decimal.Parse(strProfitMargin, CultureInfo.InvariantCulture);
于 2013-06-04T15:43:21.360 に答える