Pagina 1 di 1
(java) Formato tipo float
Inviato: mercoledì 13 giugno 2007, 20:13
da danilo84
Ciao a tutti,
vorrei sapere se in java, c'è la possibilità di avere un numero di tipo float nel seguente formato: xxx.xxx.xxx,xx
Cioè, avere una funzione che in input abbia il numero cosi: 1234,23 e in output, sempre di tipo float questo: 1.234,23
Grazie
Re: (java) Formato tipo float
Inviato: mercoledì 13 giugno 2007, 20:54
da Giambo
danilo84 ha scritto:
Ciao a tutti,
vorrei sapere se in java, c'è la possibilità di avere un numero di tipo float nel seguente formato: xxx.xxx.xxx,xx
Cioè, avere una funzione che in input abbia il numero cosi: 1234,23 e in output, sempre di tipo float questo: 1.234,23
Si, quello che cerchi e' DecimalFormat, da usare con DecimalFormatSymbols:
http://java.sun.com/j2se/1.5.0/docs/api ... ormat.html
http://java.sun.com/j2se/1.5.0/docs/api ... mbols.html
Codice: Seleziona tutto
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(',');
symbols.setGroupingSeparator('.');
DecimalFormat format = new DecimalFormat("#,###.##", symbols);
String result = format.format(mioNumero);
E' curioso come nel pattern passato a DecimalFormat, il separatore delle migliaia e' uguale al separatore dei decimali che vuoi usare te, e vice versa

Re: (java) Formato tipo float
Inviato: mercoledì 13 giugno 2007, 21:17
da danilo84
Ciao, il programma va bene, solo che l'oggetto che hoin output è di tipo String, mentre lo voglio di tipo Float perchè mi serve per ordinare i campi di una tabella.
Re: (java) Formato tipo float
Inviato: mercoledì 13 giugno 2007, 21:20
da simo_magic
beh è di tipo string perchè ha la virgola e il punto in mezzo
quando vai ad ordinare confronta invece della stringa dentro al vettore il risultato della funzione
che ritorna un float da una stringa prima però devi aver levato le virgole delle migliaia...
Re: (java) Formato tipo float
Inviato: mercoledì 13 giugno 2007, 21:25
da danilo84
Ho fatto, solo che mi da errore:
Codice: Seleziona tutto
Exception in thread "main" java.lang.NumberFormatException: multiple points
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at tren.Home.<init>(Home.java:59)
at tren.Home.main(Home.java:48)
Re: (java) Formato tipo float
Inviato: giovedì 14 giugno 2007, 17:18
da Giambo
danilo84 ha scritto:
Ciao, il programma va bene, solo che l'oggetto che hoin output è di tipo String, mentre lo voglio di tipo Float perchè mi serve per ordinare i campi di una tabella.
Sbagli candeggio: Tu ordina i float, nella tabella usa una tua implementazione di TableCellRenderer per visualizzare i valori formattati come vuoi.
Codice: Seleziona tutto
JTable table = new JTable();
int indiceColonnaConIFloat = ...
TableColumn col = table.getColumnModel().getColumn(indiceColonnaConIFloat );
col.setCellRenderer(new MyTableCellRenderer());
...
public class MyTableCellRenderer extends JLabel implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
// 'value' e' il tuo Float.
[trasforma value nella forma voluta, la String 'result']
// assegna il Float trasformato alla JLabel
setText(result);
return this;
}
}
}