separar - separador de miles java
Convertir cadena con punto o coma a nĂºmero flotante (5)
Siempre me gusta la entrada en mi función para obtener números que van desde 0.1 a 999.9 (la parte decimal siempre está separada por ''.'', Si no hay un decimal, entonces no hay ''.'', Por ejemplo, 9 o 7.
¿Cómo convierto esta Cadena a valor flotante independientemente de la localización (algunos países usan '','' para separar la parte decimal del número. Siempre lo obtengo con ''.'')? ¿Depende esto de la configuración de la computadora local?
¿Qué pasa con esto?
Float floatFromStringOrZero(String s){
Float val = Float.valueOf(0);
try{
val = Float.valueOf(s);
} catch(NumberFormatException ex){
DecimalFormat df = new DecimalFormat();
Number n = null;
try{
n = df.parse(s);
} catch(ParseException ex2){
}
if(n != null)
val = n.floatValue();
}
return val;
}
Consulte java.text.NumberFormat
y DecimalFormat
:
NumberFormat nf = new DecimalFormat ("990.0");
double d = nf.parse (text);
El método Float.parseFloat()
no depende de la configuración regional. Se espera un punto como separador decimal. Si el separador decimal en su entrada siempre es un punto, puede usar esto de manera segura.
La clase NumberFormat
proporciona un formato y un análisis con NumberFormat
ubicación, en caso de que necesite adaptarse a diferentes configuraciones regionales.
valueStr = valueStr.replace('','', ''.'');
return new Float(valueStr);
Hecho
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(''.'');
DecimalFormat format = new DecimalFormat("0.#");
format.setDecimalFormatSymbols(symbols);
float f = format.parse(str).floatValue();