2011-06-18 9 views
2

数値を表示しているASP.net MVC Webサイトがあります。ユーザーのコンピュータがカンマまたは小数点記号としてポイントを使用するように設定されているかどうかをどういう方法で判断できますか?ASP MVCの小数点記号の決定方法

私はRequest.UserLanguagesでさまざまな言語をチェックできましたが、小数点記号の決定にはあまり正確ではありません。

答えて

2

あなたは、ブラウザの言語からCultureInfoを取得する方法をhereを見ることができる - これは、あなたがこのように使用することができます CultureInfoオブジェクトを取得します:

var sep = browserCulture.NumberFormat.NumberDecimalSeparator; 

CultureInfoNumberFormatInfoを参照してください。

+0

ありがとうございます - 小数点記号が必ずしも言語に対応しているわけではないので、それはすべてのケースでうまくいかないが、私が必要とするものにかなり近いところに来る。 – Preli

1

MVCには10進値の処理に問題があります。

これについてHaack氏は素晴らしいpostがあります。これを克服する方法を示します。

0

エンドユーザーのコンピュータについて質問しているので、答えは「いいえ」です。残念ながら、Webブラウザはあなたにそのような情報を提供しません。取得できるのはユーザーの優先言語ですが、HTTP Accept-Languageヘッダーを介してサーバーに送信されるブラウザー設定です。それでおしまい。
もしJavaScriptがあなたにそれを与えると思うなら、答えはいいえです。これはサンドボックス内で実行されるため、オペレーティングシステムにアクセスすることはできません。
Flashがこのような情報に(おそらく)アクセスできるかどうかはわかりませんが、エンドユーザーによってブロックされる可能性があります。 ActiveXコントロールの場合も同じですが、クロスプラットフォームではありません。

ウェブブラウザやフォーマット番号から検出されたカルチャに従うようにしてください。エンドユーザのOS設定の変更はサポートしていませんが、その方が簡単です。

+0

ありがとうございます。私はあなたの答えが "最も正しいもの"であると仮定します。しかし、オデッドの答えは私が必要とするものにかなり近くなるので、私は彼の答えを受け入れるつもりです。 – Preli

+0

もう少し簡単なコメント:トリックでJavaScriptの小数点の区切り文字を検出することができます。toLocaleString()(またはそれに類似)を使用して10進数を文字列に変換し、小数点の区切り文字として使用します。 – Preli

+0

@Preli:これは素晴らしいアイデアですが、結果は一貫していません。異なるWebブラウザでは別の方法で処理します(一部は壊れている)。 –

関連する問題