Kommerstellen (Abrunden)

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Kommerstellen (Abrunden)

    Hey :)

    Ich habe ein kleines problem'chen und zwar ich habe die Prozente für die Benotungen an unserer Schule bekommen und habe daraus eine "Form" (?) gemacht sprich mit den Prozenten und der Gesamtzahl brechnet er wieviel Punkte man benötigt um die Note 1,2,3,4,5 oder 6 zu bekommen. Alles ist prima & funktioniert aber wenn ich eine ungerade zahl z.B.: 97 als Gesamtpunktzahl angebe spuckt er mir Zahlen mit Kommastelle aus. Und diese möchte ich weghaben aus 103,75 sollen nur 103 sein. Klingt irgendwie Simple aber ich scheitere ^^

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. note1.Text = GesamtPunktzahl.Text / 100 * 93
    4. note2.Text = GesamtPunktzahl.Text / 100 * 75
    5. note3.Text = GesamtPunktzahl.Text / 100 * 60
    6. note4.Text = GesamtPunktzahl.Text / 100 * 40
    7. note5.Text = GesamtPunktzahl.Text / 100 * 20
    8. note6.Text = GesamtPunktzahl.Text / 100 * 0
    9. End Sub


    Der Code (falls nötig) :p
    Willkommen im Forum. :thumbup:

    MissMercy schrieb:

    VB.NET-Quellcode

    1. note1.Text = GesamtPunktzahl.Text / 100 * 93

    @petaod Jou
    MissMercy: Was soll "Roulade mit Klößen" dividiert durch 100 sein?
    Deine mögliche Antwort "Da stehen aber Zahlen drinne" lasse ich nicht gelten. ;)
    -------
    Abgerundet wird mit Math.Floor(x).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:


    MissMercy: Was soll "Roulade mit Klößen" dividiert durch 100 sein?
    Deine mögliche Antwort "Da stehen aber Zahlen drinne" lasse ich nicht gelten. ;)
    -------
    Abgerundet wird mit Math.Floor(x).


    Na ja, note1 steht für die Note 1 und die Gesamtpunktzahl ist eben die Gesamtpunktzahl der Klausur oder sonstiges, eigentlich ist das eine normal Prozentrechnung die nur ausgeben soll ab wieviel Punkten man die 1 bekommt ^^

    Und ich habe es mit "fix(Zahl)" gelöst denn es soll nicht gerundet werden lediglich abgeschnitten sprich die Nachkomma Stellen sollen nicht angezeigt werden

    MissMercy schrieb:

    oder sonstiges
    z.B. "Roulade mit Klößen".
    Wenn Du ausschließlich mit numerischen oder gar Integer-Werten als Input arbeiten willst, nimm ein NumericUpDown-Control.
    Bei der Division musst Du aufpassen, dass da auch mit Double-Werten gerechnet wird, sonst rechnest Du ggf. falsch.

    VB.NET-Quellcode

    1. Dim i, j As Integer
    2. dim x = i / j ' ist Double-Division
    3. dim y = i \ j ' ist Integer-Division
    Überzeuge Dich von der Richtigkeit der numerischen Berechnung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!