2

通貨を扱うアプリケーションがあります。表示目的で、OS の地域設定に基づいて書式設定する気の利いた VB FormatCurrency 関数を使用します。したがって、フランスでは 123.45、米国では 123.45 となる場合があります。

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

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

これに似たことができると思いました: .toString("#0.00")

4

3 に答える 3

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を生成します

于 2009-04-14T13:31:10.350 に答える
2

試す:

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

詳細はこちら:
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

「C」は通貨のフォーマットですが、さまざまなフォーマット文字列を使用できます。インバリアント カルチャではなく "US" 用にフォーマットしたい場合は、次のようにします。

value.ToString("C", CultureInfo.CreateSpecificCulture("en-US"))
于 2009-04-14T01:42:11.413 に答える
0

InvariantCulture を ToString() メソッドに渡してみてください。

Dim dec As Decimal = 1.25D
dec.ToString(System.Globalization.CultureInfo.InvariantCulture);
//writes 1.25
于 2009-04-14T01:40:18.907 に答える