Mi piacerebbe convertire un BigDecimal in stringa per scopi di stampa ma stampare tutte le cifre senza notazione scientifica. Per esempio:Formato BigDecimal senza notazione scientifica con precisioni complete
BigDecimal d = BigDecimal.valueOf(12334535345456700.12345634534534578901);
String out = d.toString(); // Or perform any formatting that needs to be done
System.out.println(out);
mi piacerebbe ottenere 12334535345456700,12345634534534578901 stampato. In questo momento ottengo: 1.23345353454567E + 16.
'System.out.println (out);' 'non System.out.println (output);' –
Parte il problema è '12334535345456700.12345634534534578901' viene troncato a' 1.23345353454567E + 16' prima ancora che il valore venga passato al costruttore 'BigDecimal', perché i doppi valori costanti nel codice non hanno molta precisione. Puoi verificarlo semplicemente cercando di memorizzarlo in una variabile 'double' e stampandolo: http://ideone.com/j5FKp1. È necessario iniziare con il valore come stringa se si desidera la precisione aggiuntiva. – mellamokb