Sto provando i metodi e la funzionalità della classe NumberFormat
e ho raggiunto uno strano risultato. I compilare ed eseguire il seguente programma:NumberFormat setMaximumFractionDigits method
public static void main(String[] args) {
Locale loc = Locale.US;
NumberFormat nf = NumberFormat.getInstance(loc);
System.out.println("Max: "+nf.getMaximumFractionDigits());
System.out.println("Min: "+nf.getMinimumFractionDigits());
try {
Number d = nf.parse("4527.9997539");
System.out.println(d);
// nf.setMaximumFractionDigits(4);
System.out.println(nf.format(4527.999753));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
L'output è:
Max: 3
Min: 0
4527.9997539
4,528
Ciò significa che esso non tiene conto di eventuali cifre frazione. Se io commento dalla riga:
nf.setMaximumFractionDigits(4);
l'output è:
Max: 3
Min: 0
4527.9997539
4,527.9998
In altre parole, funziona bene. Cosa sta realmente accadendo con il metodo setMaximumFractionDigits()
e non porta il numero che contiene 3 cifre di frazione nel primo caso?
Si intende l'impostazione manuale delle cifre decimali di un numero? –