Ich versuche, eine zufällige Dezimalzahl auf 10 Ziffern zu runden, aber ich kann nicht herausfinden, wie. Nun, das ist es, was ich ausprobiert habe und es funktioniert meistens, aber manchmal bekomme ich es auf 9 Ziffern anstatt auf 10 gerundet. Ich hoffe, jemand könnte mir helfen.Was ist der beste Weg, um ein Doppel auf 10 Ziffern zu runden?
BigDecimal bd = new BigDecimal(Math.random()).setScale(10, 0);
double doubleVal = bd.doubleValue();
System.out.println(doubleVal);
Vielen Dank im Voraus.
Sie haben ein falsches Verständnis von Zahlen und deren Darstellung. Zahlen selbst (die z. B. in einer 'double'-typisierten Variablen gespeichert sind) können nicht _rounded_ oder ähnlich sein. Sie sind einfach Zahlen. Nur die textuelle Darstellung kann gerundet werden. Normalerweise machen Sie das mit einem [formatter] (https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html) oder anderen Mitteln. – Seelenvirtuose
Was denkst du, was der zweite '0' Parameter im' setScale() 'Aufruf tut? Und warum denkst du so? – Andreas
@Seelenvirtuose Nun, um klar zu sein, Zahlen können gerundet werden, aber ich stimme zu, dass OP nicht das ist, wonach es sucht. – Andreas