6

これは簡単なはずですが、どこにも答えが見つかりません。asp.net MVCサイトでは、通貨の値が表示されます。ユーザーのカルチャ設定に関係なく、これらの通貨の値は常に米ドルである必要があります。

string.format( "{0:C}"、value)を使用すると、使用が設定したカルチャの値が表示されます。$ 1000.00は1000.00ユーロと同じではないため、これは私たちにとって正しくありません

私はまだこれの言語側を使用する必要があります。つまり、彼らがフランスにいる場合は、フランス語のローカリゼーションリソースを使用したいので、彼らの文化設定を完全に無視したくありませんが、通貨が常に表示されるようにするにはどうすればよいですか?米ドルで?

4

2 に答える 2

8

カルチャを明示的にFormat呼び出しに渡します。

string.Format(new CultureInfo("en-US"), "{0:C}",value) 

他の言語と混合する必要がある場合-通貨値のフォーマット結果を保存し、文字列として他の場所に挿入します。

補足:「en-US」(またはその他のハードコードされたカルチャ)を使用すると、負の値の表現が一致しない可能性があります。つまり、一部のカルチャは-100を使用し、他の(100)は負の値を使用します。

于 2012-11-05T16:28:33.177 に答える
1

CurrentCultureをen-USに指定し、CurrentUICultureをそのままにしておく必要があります。

私は通常、Application_BeginRequestイベントのglobal.asax.csでこれを行います

System.Threading.Thread.CurrentThread.CurrentCulture = 
     new System.Globalization.CultureInfo("en-US", false);

web.configファイルでカルチャを指定することは可能ですが、1つの欠点があります。サーバーのカスタマイズされた地域設定が考慮されます(管理者がen-USカルチャのサーバーで通貨または日付形式を変更した場合、この方法で取得されます)-したがって、アプリケーションが作成/テストしたときとまったく同じように動作するかどうかを確認することはできません。

于 2012-11-05T16:31:15.010 に答える