100 als Summe

schlaui

Mitglied
Zwei beliebige float-Werte zwischen 0..100 ergeben addiert genau Hundert. Wie kann ich beide Werte so runden, dass die gerundeten Werte anschließend auch Hundert ergeben? Beispiel: r(45,5) + r(54,5) = 46 + 55 = 101 ... ist nicht 100.

Ich erwarte von euch brauchbare Antworten (also konstruktiven Input). Übers Wetter möchte ich nicht schwadronieren.
 

httpdigest

Top Contributor
Naja, "falsches" Runden gibt es in dem Sinne nicht. Es gibt verschiedene Formen des Rundens. Uns ist wohl das "kaufmännische Runden" ("half-up", also 1.5 ergibt 2) am geläufigsten. Es gibt aber noch "half-down" (also 1.5 ergibt 1), "ceiling" oder "towards positive infinity", "floor" bzw. "towards negative infinity", etc...
 

KonradN

Super-Moderator
Mitarbeiter
Zwei beliebige float-Werte zwischen 0..100 ergeben addiert genau Hundert. Wie kann ich beide Werte so runden, dass die gerundeten Werte anschließend auch Hundert ergeben? Beispiel: r(45,5) + r(54,5) = 46 + 55 = 101 ... ist nicht 100.
Das ist von der Aufgabenstellung her etwas unsinnig.

Du kannst die Forderung haben, dass zwei Zahlen eine Bedingung erfüllen (bei Fließkommazahlen sind aber ungenauigkeiten an der Tagesordnung, daher wird auch bei Vergleichen mit einer Ungenauigkeit gerechnet und die Summe müsste in einem Bereich sein (also 100 +/- einem Epsilon).

Aber zwei Zahlen sollen eine Bedingung erfüllen und dann machst Du erst noch etwas mit den Zahlen - das ist natürlich dann natürlich vom Vorgehen her Quatsch.

Wenn Du statt einem epsilon lieber runden willst, dann runde nach der Addition und nicht vorher.
 

schlaui

Mitglied
Die einzelnen Summanden sollen aber auf ganze Zahlen gerundet sein, damit der Rechenweg "schön" aussieht.

Hier schneit es weder, noch scheint die Sonne , richtiges Mistwetter ... ich gucke schon die ganze Zeit nach Spionage-Ballons ... 🧐

Wie soll eine Funktion, die nur einen Parameter übergeben bekommt, entscheiden, ob sie ihre x,5 auf- oder abrunden soll?
 

Blender3D

Top Contributor
Zwei beliebige float-Werte zwischen 0..100 ergeben addiert genau Hundert. Wie kann ich beide Werte so runden, dass die gerundeten Werte anschließend auch Hundert ergeben? Beispiel: r(45,5) + r(54,5) = 46 + 55 = 101 ... ist nicht 100.
Die Formulierung ist an sich unsinnig.
Wenn für 2 Zahlen x,y e R gilt x+y = 100
Dann ist runden überflüssig.
Ich erwarte von euch brauchbare Antworten (also konstruktiven Input). Übers Wetter möchte ich nicht schwadronieren.
Das bedeutet x ist von y abhängig und umgekehrt.

Du benötigst also eine Funktion wie.
Java:
double getDiffTo100( double a ){
    return 100-a
}
Mittels
Java:
..
    double x = 34.36;
    double y = getDiffTo100(x);
 

Blender3D

Top Contributor
Die einzelnen Summanden sollen aber auf ganze Zahlen gerundet sein, damit der Rechenweg "schön" aussieht.
Meinst Du so ?
Java:
public class TestRunden {
    public static void main(String[] args) {
        double[][] test = { { 45.5, 54.5 }, { 45.3, 54.7 }, { 45.3, 54.3 }, { 45.6, 54.4 } };

        for (int i = 0; i < test.length; i++) {
            int[] val = getRoundedSummandsOfIntResult(test[i][0], test[i][1]);
            if (val != null)
                System.out.println(String.format("%d+%d=%d", val[0], val[1], (val[0] + val[1])));
            else
                System.out.println(
                        String.format("%.2f+%.2f -> no int result", test[i][0], test[i][1], (test[i][0] + test[i][1])));
        }
    }

    public static int[] getRoundedSummandsOfIntResult(double a, double b) {
        int[] val = new int[] { (int) a, (int) b };
        int sum = (int) (a + b);
        if (a + b != sum)
            return null;
        if (val[0] + val[1] == sum)
            return val;
        int id = (a - val[0] > b - val[1]) ? 0 : 1;
        val[id]++;
        return val;
    }
}
 

Neumi5694

Top Contributor
Wenn du immer fix 3 Stellen Genauigkeit brauchst, verwende keine Gleitkommazahlen, sondern einen Int oder Long um Faktor 1000 erhöht und dividiere für die Darstellung durch 1000.

ps: Und ja, wenn eine Zahl berechnet wird, dann ergibt sich die andere aus der Differenz. Das gilt auch hier.
 

berndoa

Top Contributor
Im Prinzip müsstest du ganz normal (kaufmännisch) die 2 Zahlen runden.
Ausnahme: Wenn beide Zahlen auf ,5 enden, dann müsstest du halt eine von beiden (falscherweise) abrunden :)
 

Neumi5694

Top Contributor
Im Prinzip müsstest du ganz normal (kaufmännisch) die 2 Zahlen runden.
Ausnahme: Wenn beide Zahlen auf ,5 enden, dann müsstest du halt eine von beiden (falscherweise) abrunden :)
Ich glaub, gerade im kaufmännischen Bereich gibt es gesetzliche Regeln, wann ab- und wann aufgerundet wird, die über mathematische Regeln hinausgehen. Es kommt auf den Anwendungsfall an. Es kann sogar ein x.8 abgerundet werden müssen.
 

berndoa

Top Contributor
Ich glaub, gerade im kaufmännischen Bereich gibt es gesetzliche Regeln, wann ab- und wann aufgerundet wird, die über mathematische Regeln hinausgehen. Es kommt auf den Anwendungsfall an. Es kann sogar ein x.8 abgerundet werden müssen.
Naja, das normale kaufmännische Runden sagt:
"
Nachkommastelle <5 -> abrunden
Nachkommastelle>=5 -> aufrunden"
 

KonradN

Super-Moderator
Mitarbeiter
Die Frage ist aber doch, wann wo gerundet wird und was die genauen Regel sind.

Wenn die Einzelposten gerundet werden, und dann die Summe zählt, dann ist die Summe der Einzelbeträge 45,5 und 54,5 eben nicht 100 sondern 101!

Wenn das Runden erst nach der Summierung kommt, dann ist die Summe von 45,5 und 54,5 halt 100.

Aber die Grundlagen des Vorgehens muss halt bestimmt werden.

Beispiel Steuererklärung:
  • man kann dann bei einem Wert als Eingabehilfe eben Einzelwerte eingeben. Dann hat man 45,5 und 54,5 = 100. Der Endwert wird dann auf volle Euro genommen. Also je nach Wert Auf oder Abrunden. Da hier 100,00 waren, bleibt es bei 100,0.
  • Man hat unterschiedliche Felder. Diese sind z.B. auf volle Werte aufzurunden: 45,5 -> 46. 54,5 -> 55. Bei der Summe der Felder wird dann halt 101 rauskommen.

Also klare Rechenregeln. Die müssen halt einmal klar definiert sein. Und dann ist auch klar, was das Ergebnis ist und man kann prüfen, wann etwas eben 100 ist oder nicht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
Ninum Summe Java Basics - Anfänger-Themen 3
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
R Summe Java Basics - Anfänger-Themen 13
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
A Summe des Arrays pd mit alternativer Schleife Java Basics - Anfänger-Themen 2
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
F Summe in einem Array bestimmen Java Basics - Anfänger-Themen 3
N Quadratische Matrix inkl Summe Java Basics - Anfänger-Themen 8
F Summe aller echten Teiler Java Basics - Anfänger-Themen 2
F Summe aller echten Teiler und Zahlen zurückgeben Java Basics - Anfänger-Themen 1
M Array Summe- wo ist der Fehler ? Java Basics - Anfänger-Themen 13
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
A Summe aller ungeraden Zahlen Java Basics - Anfänger-Themen 5
J ArrayList: summe aller Spielkarten Java Basics - Anfänger-Themen 15
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
K Methode: Summe von n Zahlen Java Basics - Anfänger-Themen 24
S Summe aus Kombinationen /permutationen einer Liste mit einer Obergrenze Java Basics - Anfänger-Themen 10
P Altklausur: Abfrage der Summe Java Basics - Anfänger-Themen 9
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
B summe von 2 Matrizen Java Basics - Anfänger-Themen 20
V Input/Output ArrayList Summe ausgeben Java Basics - Anfänger-Themen 57
B Serial Key prüfen -> String mit privatem Key und dann abgleichen; Summe = 0 Java Basics - Anfänger-Themen 8
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
L Array: Summe aller geraden und ungeraden Zahlen ermitteln Java Basics - Anfänger-Themen 9
Joew0815 summe aus einem aarray Java Basics - Anfänger-Themen 4
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
E Summe der "Nachbarn" eines Wertes in einem Array bestimmen Java Basics - Anfänger-Themen 8
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
G Rekursion Summe Java Basics - Anfänger-Themen 15
D Summe von Eingaben in einer for Schleife Java Basics - Anfänger-Themen 4
J Summe mit 45 nachkommastellen Java Basics - Anfänger-Themen 8
D Summe aller Positiven Integer aus einer Liste mit ActionObject Java Basics - Anfänger-Themen 2
V Programm summe Java Basics - Anfänger-Themen 11
I Summe eines Arrays ohne Schleife Java Basics - Anfänger-Themen 4
C Summe berechnen Java Basics - Anfänger-Themen 22
A Summe aller Natürlichen Zahlen - Methode Prüfen Java Basics - Anfänger-Themen 10
D Pyramide: Summe der diagonal über ihr stehenden Zahlen! Java Basics - Anfänger-Themen 6
A summe von m bis n mit for-Schleife Java Basics - Anfänger-Themen 5
M array - summe quer Java Basics - Anfänger-Themen 9
J summe von aufeinander folgenden floats eines arrays Java Basics - Anfänger-Themen 10
B array bestimmte summe berechnen Java Basics - Anfänger-Themen 4
S Summe Berechnen Java Basics - Anfänger-Themen 6
S Summe von Zufallszahlen Java Basics - Anfänger-Themen 9
Z Summe von Vektor-Elementen Java Basics - Anfänger-Themen 5
E Array gebildete Summe ausgeben Java Basics - Anfänger-Themen 5
D 100.0% gleichmäßig aufteilen, so dass Summe 100.0% sind, nicht 99,9% oder 100,1% Java Basics - Anfänger-Themen 3
M Rekursion Summe vom Array Java Basics - Anfänger-Themen 2
W sin-funktion x-wert der summe approximieren Java Basics - Anfänger-Themen 2
M Summe eines Arrays Java Basics - Anfänger-Themen 2
U Summe produkt von einem array Java Basics - Anfänger-Themen 9
J Summe postive Zahlen und negative Zahlen Java Basics - Anfänger-Themen 12
G Summe der Ziffern einer Zahl EFFIZIENT berechnen? Java Basics - Anfänger-Themen 18
J matrix nach summe der spalten sortieren Java Basics - Anfänger-Themen 5
Antoras Zahlen mischen und mit einer for-Schleife Summe berechnen Java Basics - Anfänger-Themen 12
G Summe zweier doubles falsch? Java Basics - Anfänger-Themen 10
G Md5 Summe eines Fileobjektes bilden Java Basics - Anfänger-Themen 4
G JTable Zwischenüberschriften bzw. Summe? Java Basics - Anfänger-Themen 2
L Berechnung Summe Java Basics - Anfänger-Themen 3
A String in Zahlen/Summe umformen Java Basics - Anfänger-Themen 2
R Summe Iterative Java Basics - Anfänger-Themen 6
S Summe innerhalb eines arrays? Java Basics - Anfänger-Themen 2
M summe von squares Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben