public class NumFormatTest
{
public static void main(String[] args) throws ParseException
{
String num = "1 201";
DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(Locale.FRANCE);
System.out.println("Number Before parse: "+num);
double dm = df.parse(num).doubleValue();
System.out.println("Number After parse: "+dm);
}
}
uscita:Java decimale problema Format analisi
Number Before parse: 1 201
Number After parse: 1.0
Output previsto:
Number Before parse: 1 201
Number After parse: **1201**
Può qualcuno si prega di aiutarmi a capire il motivo per cui parse non è in grado di convertire un locale FRANCESE stringa formattata (1 201) al valore doppio normale (1201.0)?
ho notato qualcosa di simile se prima provo e formattare una doppia come questo d = 1.201 String = retVal df.format (d); quindi prova ad analizzare questo valore formattato che sarebbe retVal = 1 201 double val = df.parse (retVal) .doubleValue(); questo funzionerebbe e vedrà val = 1201.0 Ma ho già una stringa in formato FRENCH (1 201) e l'analisi diretta non funziona. Non ho idea del perché ... se mi aiuti a rispondere alla ragione. –
Questo può aiutare: http://stackoverflow.com/a/8389625/3519951 –
@AmitNag dare un'occhiata alla mia risposta ... Sto spiegando che il comportamento ci – ParkerHalo