Stellen von gerundeten Zahlen...

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Panavia.

    Stellen von gerundeten Zahlen...

    Hallo,

    ich bräuchte mal wieder Eure Hilfe. Wie kann ich die Stellen eines gerundeten Ergebnisses ermitteln? Also z.B. für 112,3 -> 4 Stellen, 12,5 -> 3 Stellen etc..
    Wichtig ist dabei, dass die wirklich zur Anzeige gebrachten Stellen ermittelt werden. Also wenn die Funktion Math.Round auf die volle Zahl rundet auch nur die Stellen vor dem Komma...

    Vielen Dank!
    Gruß, Tobias
    Hi,

    also wenn ich es richtig verstanden habe will er doch nur die Anzahl der Stellen haben...

    Auf die Schnelle :

    VB.NET-Quellcode

    1. Dim checkcoma = TextBox1.Text.IndexOf(",")
    2. If checkcoma = -1 Then
    3. Label1.Text = TextBox1.Text.Length
    4. Else
    5. Label1.Text = TextBox1.Text.Length - 1
    6. End If


    Viele Grüße
    hallo samurai,

    oder so

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Dim zahl As Double = Math.Round(123.456789, 4)
    4. Me.Text = "Meine Zahl " & zahl & " hat " & (zahl.ToString.Length - 1).ToString & "Stellen"
    5. End Sub
    6. End Class

    gruss

    mikeb69
    Hallo, danke für die Beiträge!

    Die Zahl in einen String umzuwandeln und dann die Stellen zu zählen ist natürlich smart. Das "-1" hat den Zweck, das Komma bei der Zählung weg zu lassen, oder?
    Ich habe es jetzt noch nicht ausprobiert aber würde auch bei Math.Round(123.023, 1) das richtige Ergebnis raus kommen? Immerhin lässt VB dann die Nachkommastelle weg (also 123 anstatt 123,0).
    Oder gibt es eine Möglichkeit immer auch die 0 hinterm Komma anzeigen zu lassen?

    Gruß, Tobias
    hallo panavia,

    soweit ich informiert bin steht die zweite zahl im math.round befehl für die anzahl der nachkommastellen !
    somit hättest du in deinem fall eine 0 nach dem komma stehen.

    tipp:
    probier einfach mal einbischen damit rum.
    um die stellen der zahl, ganz sicher zu zählen kannst du ja noch ein replace verwenden

    VB.NET-Quellcode

    1. Dim zahl As Double = Math.Round(123.456789, 4)
    2. Me.Text = "Meine Zahl " & zahl & " hat " & (zahl.ToString.Replace(",", "").Length).ToString & "Stellen"


    gruss

    mikeb69
    Hallo mikeb69,

    das habe ich auch gedacht aber VB lässt bei einer Rundung auf 0 hinterm Komma immer die Nachkommastelle weg. Also 12 anstatt 12,0 auch wenn Math.Round(12.012, 1) angegeben wurde...
    Das mit dem Replace war 'ne super Idee! Jetzt funktioniert es einwandfrei. Danke!!! :thumbsup:

    Gruß, Tobias

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Panavia“ ()