2

リストの 1 つで SPFieldCurrency 列を使用しています。

私のカスタム コードは、GetFormattedValue() メソッドによって返されるフィールドの値を含む文字列値をパラメーターとして受け取ります。

今私の問題は、私の方法で受け取った値に通貨記号が含まれていることです。たとえば、10$、10¥、10€などです。

コードに通貨記号が存在するため、これらの値に対して Double.TryParse() を実行すると失敗します。

通貨のカルチャ情報を知らなくても、SPFieldCurrency オブジェクトの表示文字列値から数値を抽出するにはどうすればよいですか?

4

3 に答える 3

2

とった。落とし穴は、NumberStyles.Anyを使用することです。これにより、すべての通貨記号が削除されます。

Double.TryParse(valueString、NumberStyles.Any、CultureInfo.CurrentCulture.NumberFormat、out value)を使用しました

それは私のために働いた。ありがとう

于 2009-06-15T08:46:56.317 に答える
0

「これを行うには、NumberFormatInfo インスタンスを作成し、そのプロパティを設定して、文字列の特定の側面を処理します。たとえば、CurrencySymbol プロパティを「$」に​​設定し、NumberDecimalDigits プロパティを 2 などに設定します。」

ソース

あなたが持っている唯一の問題は、フィールドに複数の種類の通貨があることです...

于 2009-06-15T07:50:02.600 に答える
0

さて、次のように値を直接単純に解析するとします。

double myvalue;
bool success = double.TryParse(properties.ListItem["MyFieldName"].ToString(), out myvalue);

通貨記号のない値が表示されます。

しかし、あなたの質問はややあいまいです。問題は SharePoint アイテムから double として値を取得することですか、それともコードでフォーマットされた文字列を処理する方法の問題ですか?

于 2009-06-15T08:35:46.733 に答える