2012-08-29 13 views
11

Necesito crear una cadena usando el formateador para mostrar algunos valores de doble float. No tengo claro cómo codificarlo. Aquí es lo que tengo:Android: Formato de cadena con valor doble

Double dWeightInKg = 100; 
Double dWeightInLbs = 220: 
String headerText = String.format("%.0f kg/%.0f lbs",Double.toString(dWeightInKg) , Double.toString(dWeightInLbs)); 

Busco el siguiente resultado:

100 kg/220 lbs 

Puedo obtener una RuntimeException - badArgumentType (formater) en mi línea String.Format.

Respuesta

21

% .0f es la cadena de formato para un flotador, con 0 decimales.

Los valores que está pasando a String.format son Cadena, Cadena cuando debe ser Doble, Doble.

No necesita convertir los dobles en cadenas.

String headerText = String.format("%.0f kg/%.0f lbs", dWeightInKg, dWeightInLbs); 
+0

Gracias por la respuesta. ¡Debería haber sabido mejor! – wyoskibum

6

Esto debería funcionar,

DecimalFormat df = new DecimalFormat("#.##"); 
private String convertToFormat(double value){ 

    return df.format(value); 
} 
+0

Gracias por la respuesta. En realidad fue algo simple. – wyoskibum

2

No necesita el Double.ToString() ya que su formateador ya está esperando un número. Pruebe esto:

String headerText = String.format("%.0f kg/%.0f lbs", dWeightInKg , dWeightInLbs); 
+0

Gracias por la respuesta. Debería haber dormido antes de preguntar !! – wyoskibum

Cuestiones relacionadas