Wie kann ich in processing Werte runden?
Hallo, ich möchte gerne eine float-Variable mit mehreren Kommastellen auf eine einzige Kommastelle begrenzen. Wie kann ich das anstellen?
3 Antworten
Auf dem einfachen, mathematischen Wege:
(float)floor(x * 10) / 10
Die erste Nachkommastelle wird durch Multiplikation mit 10 in den Ganzzahlbereich gebracht, dann wird die ganze Zahl in eine Ganzzahl abgerundet um den Dezimalbereich zu entfernen und anschließend die vorherige Multiplikation durch Division durch 10 rückgängig gemacht, somit verbleibt im Dezimalbereich nur die vorherige, erste Stelle. Die Konvertierung in float ist nötig, da floor einen Integer zurückgibt.
Mit "geht nicht" hilfst du niemanden, wenn du willst dass es weitergeht, musst du schon den Fehler beschreiben.
Allerdings scheinen dir noch einige Grundlagen zu fehlen, also lerne erstmal weiter, das erspart dir viele Fragen.
DecimalFormat df = new DecimalFormat("#.#");
df.format(55.544545); // = 55.5
Das funktioniert nicht: fehlermeldung dicimalformat gibt es nicht
Seit Processing 2 gibt es den Befehl round();
Geht leider auch nicht :(