Ho un oggetto BigDecimal e voglio convertirlo in stringa. Il problema è che il mio valore ottenuto frazione e ottengo un numero enorme (in lunghezza) e ho solo bisogno il numero originale nella stringa, ad esempio: perBigDecimal to string
BigDecimal bd = new BigDecimal(10.0001)
System.out.println(bd.toString());
System.out.println(bd.toPlainString());
l'output è:
10.000099999999999766941982670687139034271240234375
10.000099999999999766941982670687139034271240234375
e ho bisogno del fuori messo di essere esattamente il numero 10.0001
nella stringa
Un modo più efficiente convertire un 'double' in questo modo è usare' BigDecimal.valueOf (double); ' –
@PeterLawrey Non sono sicuro di aver capito. 'BigDecimal.valueOf (double)' "arrotonda" il doppio nello stesso modo in cui il double viene arrotondato quando viene stampato, che usa regole un po 'complesse quindi non sono sicuro di come si possa fare affidamento su questo. – assylias
'Traduce un doppio in un BigDecimal, usando la rappresentazione di stringa canonica del doppio fornita dal metodo Double.toString (double). Nota: Questo è generalmente il modo migliore per convertire un doppio (o galleggiante) in un BigDecimal, come il valore restituito è uguale a quello risultante dalla costruzione di un BigDecimal dal risultato dell'utilizzo di Double.toString (doppia) .' –