Quello che vorrei è un metodo per convertire un doppio in una stringa che arrotonda usando il metodo half-up - cioè se il decimale da arrotondare è 5, arrotonda sempre al numero successivo. Questo è il metodo standard di arrotondamento che molte persone si aspettano nella maggior parte delle situazioni.
Vorrei anche visualizzare solo cifre significative, ovvero non dovrebbero esserci zero finali.
So che un metodo per farlo è usare il String.format
metodo:
String.format("%.5g%n", 0.912385);
ritorna:
0.91239
il che è fantastico, tuttavia mostra sempre numeri con 5 cifre decimali anche se non sono significativi:
String.format("%.5g%n", 0.912300);
ritorna:
0.91230
Un altro metodo consiste nell'utilizzare DecimalFormatter
:
DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
ritorna:
0.91238
Tuttavia, come puoi vedere, utilizza un arrotondamento a metà. Cioè arrotonderà se la cifra precedente è pari. Quello che mi piacerebbe è questo:
0.912385 -> 0.91239
0.912300 -> 0.9123
Qual è il modo migliore per raggiungere questo obiettivo in Java?