Double.toString(3.3) hat auch kein Runden-boolean-Parameter
wenn man im Quellcode 3.3 schreibt,
meint man dann wohl tatsächlich 3.3 oder 3.29999999999999982236431605997495353221893310546875?
ich habe noch nie gehört, dass jemand 3.3 eintippt um dann genau diesen Wert zu erhalten,
warum nicht 3.29999999999999982236431605997495353221893310546875 direkt in den Quellcode schreiben?
besonders wenn man mal 3.29999999999999982236431605997495353255555555555555 braucht,
dann kann man ja kaum nach einer Zahl suchen die wie 3.3 aussieht und doch um im Bereich 10^-20 um ein paar Stellen genau abweicht,
das ist doch verrückt,
3.3 ist IMMER 3.3, und wenn man schon in BigDecimal alle Zeit der Welt hat korrekt zu arbeiten, warum dann nicht?
das hat auch nix mit runden zu tun, einfach einen Konstruktor
public BigDecimal(double d) {
this(Double.toString(d));
}
dass darüber nachgedacht wurde zeigt ja die API und die statische valueOf-Methode,
und ein BigDecimal exakt aus einem double ist sicher auch nicht das verkehrteste,
aber wieso nicht andersrum, den Konstruktor mit String und das exakte in einer statischen Methode versteckt?
wie oft braucht man wohl BigDecimal(double d) im Verhältnis zu den zahllosen Fehlern damit wie im diesen Thread oder im gesamten Internet?,
sehr unglücklich gelaufen