Faktorberechnung?

Bitte aktiviere JavaScript!
Hallo zusammen,

ich schreibe gerade ein kleines Tool um Kompensationswerte für Materialverzug zu dokumentieren. Um das folgende Beispiel zu vereinfachen verwende ich nur eine Richtung des Verzugs.

Angenommen ich habe eine erwartete Länge von 100mm. Die tatsächliche Länge ist jedoch 99.5mm. Dieses entspricht, wie in diesem vereinfachten Beispiel schnell zu errechnen, einem Verzug von 99.5%.

Um diesen Verzug zu kompensieren, müsste ich also, vereinfacht gesagt, mit einer Vergrößerung von 100.5% arbeiten.

In den Produktionssoftwaresystemen sind diese Werte jedoch in der Regel nich in Prozent, sonder als eine art "Faktor" angegeben. Das heißt die 100.5% würden mit dem Faktor 0.5 angegeben. Entsprechend würden beispielsweise 101% dem Faktor 1.0 entsprechen.

Ich bin allerdings ein wenig zu doof dieses funktional umzurechnen. Mein bisheriger Anlauf sieht wie folgt aus:

Ich mache zunächst eine Fallunterscheidung um positive und negative Ergebnisse zu filtern (ich bin mir nicht sicher, ob man dieses auch smarter lösen kann):

1. erwartete Länge (expected_length) == tatsächliche Länge (actual_length)
2. erwartete Länge (expected_length) > tatsächliche Länge (actual_length)
3. erwartete Länge (expected_length) < tatsächliche Länge (actual_length)

Anschließend folgt meine Rechnung, die jedoch nicht das richtige Ergebnis liefert, denn bei einem Verzug von 99.5% erhalte ich den Faktor 1.005

Ich dachte, erst ich müsste das Ergebnis einfach nur durch 10 teilen, allerdings habe ich ja auch eine 0 zuviel vor der 5, wenn ich das richtig sehe.

Im Folgenden mein code:

Java:
if (expected_length > actual_length){
            compensation_factor_y = expected_length / actual_length;
            String tmp_compensation_factor_y = ""+compensation_factor_y;
            input_compensation_factor_y.setText(tmp_compensation_factor_y);
            }
          
            if (expected_length < actual_length){
            compensation_factor_y = actual_length / expected_length;
            compensation_factor_y = compensation_factor_y - (compensation_factor_y *2);
            String tmp_compensation_factor_y = ""+compensation_factor_y;
            input_compensation_factor_y.setText(tmp_compensation_factor_y);
            }
          
            if (expected_length == actual_length){
            compensation_factor_y = 0;
            String tmp_compensation_factor_y = ""+compensation_factor_y;
            input_compensation_factor_y.setText(tmp_compensation_factor_y);
            }
So nun die Fragen an die Mathefüchse hier: Um was für eine Art von "Faktor" handelt es sich? Außerdem würde ich natürlich gerne wissen, wie ich diesen Wert richtig berechne.

Vielen Dank vorab und Beste Grüße, Ole!
 
A

Anzeige




Schau mal hier —> (hier klicken)
Wenn bei 100.5% = 0.5 und bei 99.5% = -0.5 rauskommen soll, und als weiteres Beispiel bei 101% = 1 rauskommen soll, dann ist die Rechnung doch wohl einfach oder?
`double faktor = prozent - 100;`
"Faktor" würde ich dazu aber nicht direkt sagen, sondern eher Prozentpunkte.
 
Hi, danke für den Tip. Allerdings müsste bei 100.5% -0.5 und bei 99.5% 0.5 rauskommen. Besten Gruß, Ole!
 
100 - prozent

Wäre aber inkonsistent zu deiner obigen Aussage:
Kurz am Beispiel: Wenn ich 99.5% vom erwarteten Ergebnis habe, ist das Resultat ja kleiner geworden. Entsprechend müsste mit 0.5 vergrößert werden. Im Kehrschluss: Bei 100.5% vom erwarteten Ergebnis, ist das Resultat größer geworden und wird mit -0.5 gerechnet, wird also kleiner.

Nur zur Info. Danke noch einmal und beste Grüße!
 
Die Rechnung ist leider nicht ganz richtig. Angenommen, wir hätten eine Verkleinerung von ganzen 90% (für die Rechnung mal angenommen). Das heißt also, die Länge, die aus der Maschine kommt, wird immer 90% von der ursprünglichen Länge betragen. Soweit so gut. Jetzt wäre es aber falsch zu sagen: "Na gut, dann vergrößern wir also die Eingabelänge um 10% auf 110% ihrer ursprüngliche Länge. Dann sollten sich 110% und die 90% doch wieder zu 100% auscanceln, right?" <- FALSCH!
Rechnung: 110% * 90% = 1.10 * 0.90 = 0.99 und nicht 1.00, was wir wollen!
Um den tatsächlichen Prozentsatz zu errechnen, um den man die eingegebene Länge verändern muss, musst du dividieren und nicht einfach subtrahieren: 100% / 90% = 1.00 / 0.90 = 111.11...%, also 11.11.
 
Guten Abend, sorry, hatte gerstern überraschend Besuch und bin nicht mehr zum Testen gekommen. Ich melde mich sobald ich Zeit finde. Danke noch einmal für die hilfreichen Antworten!
 
A

Anzeige




Vielleicht hilft dir das hier weiter: (klicke hier)
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben