PDA

View Full Version : [Java] Formati numerici


Nemok
01-08-2003, 14:13
Ho un piccolo problema con la formattazione di un numero.Lo vorrei nel formato XX.XX in quanto rappresenta delle percentuali che volgio approssimare alla seconda cifra decimale.
Ho scoperto la classe NumberFormat e mi sono creato un pattern come da documentazione:

DecimalFormat formato = new DecimalFormat();
String pattern = "#,##0.0;(#,##0.0)"; //il pattern da applicare
formato.applyPattern(pattern);

try {
out.println(formato.parse(formato.format(mio_numero)));
} catch (ParseException e) {}

dove mio_numero č un Double (oggetto Double non tipo primitivo..)

Quello che vorrei č che dopo il punto mi comparisse lo zero nel caso non ci siano cifre decimali (50 --> 50.0) e da come ho impostato il pattern dovrebbe essere cosė....eppure non va,in caso il numero sia intero non rispetta il pattern.....
Suggerimenti? :confused:

Fabrizio73
01-08-2003, 15:09
Prova con questo...


import java.text.DecimalFormat;
import java.text.ParseException;

public class Main {
public static void main(String[] args) {
DecimalFormat formato = new DecimalFormat();
String pattern = "0.0#";
formato.applyPattern(pattern);

Double mio_numero = new Double(0.0);
System.out.println(formato.format(mio_numero));

mio_numero = new Double(50);
System.out.println(formato.format(mio_numero));

mio_numero = new Double(50.0);
System.out.println(formato.format(mio_numero));

mio_numero = new Double(50.01);
System.out.println(formato.format(mio_numero));

mio_numero = new Double(50.014);
System.out.println(formato.format(mio_numero));

mio_numero = new Double(50.016);
System.out.println(formato.format(mio_numero));

mio_numero = new Double(150.0);
System.out.println(formato.format(mio_numero));
}
}

Nemok
01-08-2003, 16:50
Grazie perfetto cosė funziona ;)