Die Frage ist, wie man einen gegebenen Wert auf das nächste "fast exakte" Vielfache eines gegebenen Faktors f runden soll. Beispiel:Wie werden Sie mit Gleitkommazahlen auf das nächste Vielfache eines gegebenen Faktors aufgerundet?
Wenn f = 2,6, dann würde jeder "roundUp (x, 2.6)" Aufruf eine Zahl aus der Menge zurückgeben {0, +/- 2.6, +/- 2 * 2.6, +/- 3 * 2,6, ...}
Typischerweise mein f ist entweder eine Leistung von 10 (wo die Kraft positiv oder negativ ist) oder 1/2 der Leistungs von 10.
ein weiteres Beispiel: f = 0.001 sollte Runden auf das nächste ganzzahlige Vielfache von 0,001, z. B. {0, +/- 0,001, +/- 2 * 0,001, +/- 3 * 0,001}.
UPDATE: Ich möchte das Ergebnis von RoundUp (x, f) die "Decke" des Ergebnisses, dh das kleinste Element aus der Menge von Vielfachen größer oder gleich x (wenn das der richtige Weg ist um es zu formulieren). Siehe meine Antwort unten für eine nicht so elegante Lösung (die anscheinend für alle Fälle funktioniert, die ich durchmachen kann).
Alles, was ich brauche, ist eine anständige Fließkomma-Approximation (mit Double in Java). Jeder Rat sehr geschätzt!
funktioniert nicht, weil ich es nicht glauben, dass der Fall behandelt, wobei x <1,0 :( – les2
das ist, was, obwohl ich versuche, ... ich die Lösung, die ich jetzt habe gebucht werden, die – les2
scheint zu funktionieren Ich wähle dich zum Helfen ... danke! – les2