3

今日は簡単な問題を出しましたが、実際には何の成果も得ていませんでした。数値を通貨として表示するようにフォーマットしようとしています。方法はたくさんありますが、ほとんどの方法を実行したと思います。

ここに問題があります。正と負の可能性がある複数の数値を追加していますが、わかりません。を使用して最後にTextBox.Text = Format(variable, "C")フォーマットすると、正の数値 (たとえば123 456,00 $、私はカナダに住んでいます)の正しいフォーマットが得られ(123 456,00 $)、負の数値のフォーマットが得られます。先頭に「-」記号を付けたいと思います。

例ごとに、ウェブを検索して他の方法を見つけました FormatCurrency("-123 456", 2, TriState.True, TriState.False)。そうすれば、括弧を取り除くことができますが、「-」は数値の後にあり(123 456,00 $-)ます。

次のもの: SpecificCulture. だからここに私が持っていNegativeValueHere.ToString("C", CultureInfo.CreateSpecificCulture("fr-CA"))ます。これで、かっこを . で囲んで最初に戻り(123 456,00 $)ます。ここで、私のアプリケーションは文化を設定して実行されていることに注意してください("fr-CA")。これは、私が住んでいるためです。

もう1つ試してみましたが、それが何だったか思い出せません。しかし、「$」は数字の前にありました$-123 456,00.

注: 私は VB.Net で実行しています。数値は readonly に入れるようにフォーマットする必要がありますTextBox

4

2 に答える 2

4

負の通貨値のカスタム パターンを使用して、独自のカルチャを作成できます。NumberFormatInfo.CurrencyNegativePattern に関する MSDN ライブラリの記事を参照してください。例えば:

Imports System.Globalization

Module Module1
    Sub Main()
        Dim simon = DirectCast(CultureInfo.GetCultureInfo("fr-CA").Clone, CultureInfo)
        simon.NumberFormat.CurrencyNegativePattern = 1
        Dim test = -1234.567
        Console.WriteLine(test.ToString("C", simon))
        Console.ReadLine()
    End Sub
End Module

出力: -$1 234,57

于 2013-03-29T19:52:28.107 に答える
3

これは私にとってはうまくいくようです:

Sub Main()
    Dim value As Decimal = -123.45
    Dim positiveValue As Decimal = 123.45
    Dim customCurrencyInfo As CultureInfo = CultureInfo.CreateSpecificCulture("fr-CA")

    customCurrencyInfo.NumberFormat.CurrencyNegativePattern = 8

    Dim formatString As String = value.ToString("C", customCurrencyInfo)
    Dim formatStringPositive As String = positiveValue.ToString("C", customCurrencyInfo)

    Console.WriteLine(formatString) '-123,45 $
    Console.WriteLine(formatStringPositive) '123,45 $
    Console.ReadLine()

End Sub

このリンクNumberFormat.CurrencyNegativePatternからさまざまなパターン値を取得できます。

脱線したらごめんなさい

于 2013-03-29T19:42:17.933 に答える