2009-04-14 9 views
2

通貨を扱うアプリケーションがあります。表示のために、私は、OSの領域設定に基づいて書式を設定する気の利いたVB FormatCurrency関数を使用します。フランスでは123,45、米国では123.45となります。VB.NETを使用する任意の地域のDecimal.toString()

これらの金額の計算を行うために、CDec()を使用して10進数に変換します。

私の問題は、toString()を使用してDecimalをStringに変換すると、現在設定されている領域に従ってフォーマットされるということです。私は常に、小数点を米国の文字列表現、すなわち小数点に変換できる必要があります。

私はこれに似た何かをすることができるだろうと思った: .toString( "#0.00")

答えて

0

は(あなたのToStringメソッドににInvariantCultureを渡して試してみてください)方法:

Dim dec As Decimal = 1.25D 
dec.ToString(System.Globalization.CultureInfo.InvariantCulture); 
//writes 1.25 
2

してみてください。

ここ
value.ToString("C", CultureInfo.InvariantCulture) 

さらに詳しい情報:
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

"C"は通貨の書式設定ですが、さまざまな書式文字列を使用することができます。あなたは本当にそれは不変の文化ではなく、 "US" 用にフォーマットしたい場合は、この操作を行うことができます。

value.ToString("C", CultureInfo.CreateSpecificCulture("en-US")) 
2

この

Dim dec As Decimal = 1.25D 
    Dim s As String 
    s = dec.ToString("C2", System.Globalization.CultureInfo.CreateSpecificCulture("en-US")) 

は$ 1.25

この

s = dec.ToString("N2", System.Globalization.CultureInfo.CreateSpecificCulture("en-US")) 

生成生成します1.25

関連する問題