すべての通貨を次の形式で表示する必要があります。
"[Code] [Symbol]#,##0.00;[Code] [Symbol](#,##0.00)"
ユーザーは国を選択し、外部サービスから通貨コードと記号を取得します。次に、string.replace を使用して、通貨コードと記号を上記の書式文字列に設定します。
したがって、値 123.456 (米ドル) は次のようにフォーマットされます。
"USD $123.46"
このアプローチはほとんどの通貨記号で機能しますが、クウェートの通貨記号د. कに問題があります。数値の前に記号を表示できるように値をフォーマットすることはできないようです。私は手紙に関して同じ問題を抱えていません。これは、アラビア語が右から左に書かれるという事実と関係があると考えています。シンボルはブラウザでもそのように動作します。左から右に選択することはできません。選択は右から始まります。また、linqpad でテストしていたとき、文字列は[Kuwait_Symbol]#,##0.00と表示されましたが、stackoverflow テキスト ボックスに貼り付けると、文字列がد.क#,##0.00になりました。
文字列内の文字の順序が変更されていることに注意してください。
シンボルを使用することは現実的ではないことをお勧めしなければならないと感じていますが、この問題を回避する方法はありますか? また、数字の前に記号を表示できないのはなぜですか?