4

.Net (より具体的には VB ですが、それは実際には問題ではありません) では、その数値の型を厳密に使用して、数値の形式をあるカルチャから別のカルチャに変更する方法はありますか?

問題はこれです: 英語では、数字は 123.45 です。一方、スウェーデンでは、その数は 123,45 になります。

123,45 を 123.45 に変換し、それを文字列に変換せずに (そして書式設定メソッドを使用して) 正しい型 (single、double など) に変換する方法はありますか?

4

3 に答える 3

7

文字列に変換てから正しい型に戻すというケースではありません。まったく逆です。

数値自体には、それに関する書式情報はありません。浮き輪は浮き輪です。カルチャが適切になるのは、解析またはフォーマットするときだけです。

すでに float 値を取得している場合は、それを読んでいる人の文化に基づいて適切にフォーマットしてください。

于 2008-10-31T16:28:26.407 に答える
3

数値のままにしておきます。スレッドの cultureInfo を変更すると、変換の必要なく、それに応じて表示されます。

例えば

Thread.CurrentThread.CurrentCulture = New CultureInfo("se-SE")
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture

数値や日付を具体的に文字列にフォーマットしようとしないでください。そうしないと、地獄に行くことになります。

更新: Jon はコメントで注意すべき点を指摘しています。それがあなたの状況に当てはまるかどうかはわかります。

于 2008-10-31T16:28:15.987 に答える
0

NumberFormatInfoクラスを使用してそれを行うことができます。

于 2008-10-31T16:28:28.170 に答える