Formatierung von Label oder Textfeld ins Währungsformat

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von marctheshark.

    Formatierung von Label oder Textfeld ins Währungsformat

    Hallo,

    ich versuche vergebens ein Label ins Währungsvormat zu formatieren.
    Hier mein Code

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub cmd_rechnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_rechnen.Click
    3. Dim betrag As Decimal
    4. Dim multiplikator As Decimal
    5. betrag = txt_betrag.Text
    6. multiplikator = txt_mutiplikator.Text
    7. lbl_ergebnis.Text = betrag * multiplikator
    8. End Sub
    9. End Class


    ich möchte, daß das Feld lbl_ergebniss wie folgt angezeigt wird...

    1.000,00 und wenn die zahl die 9.999.99 oder 99.999.99 übersteigt soll sie entsprechend angezeigt werden (10.000,00 oder 100.000,00).

    Ich bin mir sicher, dass das machbar ist.
    Ich finde aber leider keine Lösung....

    Vielen Dank für Euere Mithilfe.


    Gruß vom Shark

    VB.NET-Quellcode

    1.   Dim amount, principal As Decimal ' dollar amounts
    2.   Dim rate As Double ' interest rate
    3.   Dim year As Integer ' year counter
    4.   Dim output As String = "" ' amount after each year
    5.   principal = 1234.56 ' Hier dein Betrag
    6.   amount = principal * (1 + rate) ^ year
    7.   output &= String.Format("{0:C}", amount) & vbCrLf
    8.   MsgBox(output)
    Quelle:java2s.com/Code/VB/Development/StringFormatCurrency.htm

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Andy1253“ ()

    ich weiß nicht ob ich dich richtig verstanden habe aber wenn dann kannst du es auch mit :

    Label1.Text = Int (Textbox1.Text * 5)

    gut das ist jetzt mit ner txtbox und nem label und auch mal 5 aber so ähnlich könntest du es ja machen .

    gut das ist jetzt mit ner txtbox und nem label und auch mal 5

    Gut, das hat jetzt nix mit der Frage zu tun, oder löst das Problem und grausiger Code ist es auch noch, aber ansonsten könnte man es so machen.

    BTW:
    String = Int(String * Zahl)
    ist mega-quatsch!
    wenn überhaupt, dann
    String = Int(String) * Zahl

    Und weils im code-Beispiel sonst völlig untergeht:

    VB.NET-Quellcode

    1. String.Format("{0:C}", amount)

    liefert einen passenden String.

    so gehts auch:

    VB.NET-Quellcode

    1. Dim zahl As Decimal = 123456.789
    2. Debug.Print(zahl.ToString("C"))
    3. ' Output: 123.456,79 €

    Das "C" sagt VB halt, dass doch bitte das Währungsformat verwenden soll, wie es der jeweilige User eingestellt hat. Wenn also ein User keine Tausenderzeichen hat, dann wird das auch ohne dargestellt!
    aha "geht nicht". Hilft echt suuuper bei der Fehleranalyse ...

    Wie du oben am Kommentar siehst, "geht" es sehr wohl. Der "Output" ist direkt aus dem Ausgabefenster kopiert.
    qed

    VB.NET-Quellcode

    1. Dim zahl As Decimal = 123456.789
    2. MessageBox.Show(zahl.ToString("C"))

    kommt:
    Bilder
    • qed.gif

      3,32 kB, 104×107, 6.577 mal angesehen
    Hallo,

    hab gerade noch ne Lösung gefunden...


    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub cmd_rechnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_rechnen.Click
    3. Dim betrag As Decimal
    4. Dim multiplikator As Decimal
    5. betrag = txt_betrag.Text
    6. multiplikator = txt_mutiplikator.Text
    7. lbl_ergebnis.Text = Format((betrag * multiplikator), "##,##0.00 Euro")
    8. End Sub
    9. End Class