Differenz in Prozent ausrechnen
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von menorca.
-
-
-
Wert1 / Wert2 * 100 -> in deinem Fall 83,78 %
Und sonst diesen Wert von 100 abziehen dann hast di Kehrseite.
lgScheduleLib 0.0.1.0
Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten -
-
-
Hallo und Danke für eure Antworten.
habe aber irgendwie das Gefühl das es doch noch nicht so wirklich nachvollziehbar ist für dritte
um an die Werte zu kommen verwende ich diesen Code, und dann rechne ich es aus.
das Ergebnis auf der Form im Anhang, kann das stimmen? oder wie würdet ihr das machen
ich möchte ja wissen ob die Instandhaltung und Fertigung annährend gleiche Störmeldungen schreibt oder wie Abweichend die Instandhaltung zur Fertigung ist
oder eben umgekehrt Fertigung zur Instandhaltung.
muss da nicht etwas wie Meldung Instandhaltung 128,23% also 28,23% mehr gemeldet als die Fertigung bzw. abweichend zur Fertigung.
wer hat eine gute Lösung, bzw. Idee
Spoiler anzeigen VB.NET-Quellcode
- Public Sub _differenz_berechnen()
- Dim Wert1 As Double = 0
- Dim Wert2 As Double = 0
- Dim Ergebnis As Double
- Dim Ergo As Double
- Dim diff1 As Double = 0
- Dim diff2 As Double = 0
- For Each item As ListViewItem In StoerEintraege.Items
- Wert1 = Wert1 + CDbl(item.SubItems(4).Text)
- Next
- '//
- For Each item As ListViewItem In LVSchichtbuch.Items
- Wert2 = Wert2 + CDbl(item.SubItems(4).Text)
- Next
- 'deine differenz ist ((678-568)/678)*100=16,22%
- Ergebnis = ((Wert1 - Wert2) / Wert1 * 100)
- Ergo = ((Wert2 - Wert1) / Wert2 * 100)
- diff1 = Wert1 - Wert2
- diff2 = Wert2 - Wert1
- lbldifferenz2.Text = String.Format("Abweichung zum AF " & diff2 & " Minuten " & "{0:0.00} %", Ergo) + vbNewLine
- lbldifferenz.Text = String.Format("Abweichung zur IH " & diff1 & " Minuten " & "{0:0.00} %", Ergebnis)
- End Sub
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „menorca“ ()
-
also erstmal nimm nicht CDbl() sondern Double.Parse().
was du mit ergo und diff1 etc willst ist mir schleierhaft. wenn du einen prozentualen wert ausgeben wilst braucht der immer genau eine definierte basis und das ist der größte wert.
also ist deine differenz die folgende:
also angenommen Wert1 ist die anzahl der fertigung und Wert2 ist die anzahl der instandhaltung.
dann ist das verhältnis fertigung/instandhaltung=((Wert1-Wert2)/Wert1)*100
und das verhältnis instandhaltung/fertigung=((Wert2-Wert1)/wert2)*100
da negative prozentsätze irreführend sind musst du mit den absolutbeträgen der differenzen rechnen und deshalb immer (groß-klein)/groß*100
grundsätzlich solltest du aber eine einzige basis wählen ENTWEDER fertigung ODER instandhaltung.
der rest ist irreführend, zumal die absolutwerte der jeweiligen einträge auch angezeigt werden.Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „affrop“ ()
-
@menorca:: Ich halte die Herangehensweise für merkwürdig.
Rnd 10,123456789876543231 Stunden, da kann man doch gleich 10:47 Stunden schreiben.
Und eine Prozent-Angabe nur da, wo es sinnvoll ist:
Unser Plan: Wir wollen die Waldbrände in Florida um 25 Prozent senken.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! -
Hallo Affrop,
Danke ich habe das mal so umgestzt, und mich auf eine Basis (Fertigung) geeinigt
@Rod was gefällt dir an meine Rundung nicht?
VB.NET-Quellcode
-
-
doch das habe ich so gemacht
VB.NET-Quellcode
- '--- Variabeln setzen
- Dim Differenz As Double
- Dim Wert1 As Double
- Dim Wert2 As Double
- '------- Wert1 Instandhaltung
- For Each item As ListViewItem In StoerEintraege.Items
- Wert1 = Wert1 + Double.Parse(item.SubItems(4).Text)
- Next
- '------- Wert2 Fertigung
- For Each item As ListViewItem In LVSchichtbuch.Items
- Wert2 = Wert2 + Double.Parse(item.SubItems(4).Text)
- Next
- '------ Differenz Berechnung
- Differenz = ((Math.Max(Wert1, Wert2) - Math.Min(Wert1, Wert2)) / Math.Max(Wert1, Wert2)) * 100
- '------- Anzeigen in Label auf der Form
- lbldifferenz.Text = String.Format("Abweichung zur IH " & "{0:0.00} %", Differenz)
-
-
menorca schrieb:
was gefällt dir an meine Rundung nicht?
Der Mensch ist eine Analog- und eine Digital-Uhr gewöhnt, die ist seit den Babyloniern hexagesimal geteilt.
Eine dezimale Minuten-Angabe ist völlig ungewöhnlich.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! -
affrop schrieb:
dann sollte das passen
Ergebnis im Bildanhang, ich habe ein gutes Gefühl dabei denke auch es passt -
-
menorca schrieb:
doch das passt nicht
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! -
-
Guten Morgen zusammen,
eure Hilfe war hilfreich dfür noch mals schönen Dank.
da der nächste Schritt mit diesem Zusammenhängt, möchte ich hier nachtragen.
das Ergebnis möchte ich Grafisch darstellen in einem Balken Diagramm
Minuten Instandhaltung
Minuten Fertigung
Abweichung Prozent
wie gehe ich da vor? -
-
menorca schrieb:
in einem Balken DiagrammDataTable
(Double, Double) oder (Integer, Integer).
Mach ein ChartControl mit einer Series und häng dann die DataTable per DataBindng an das Chart:
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!
-
Ähnliche Themen
-
5 Benutzer haben hier geschrieben
- Gast (15)
- RodFromGermany (5)
- xtts02 (1)
- fichz (1)
- Artentus (1)