2012-08-29 11 views
11

Tôi cần phải tạo một Chuỗi bằng cách sử dụng Formater để hiển thị một số giá trị float kép. Tôi không rõ ràng về cách viết mã. Dưới đây là những gì tôi có:Android: Định dạng chuỗi có giá trị kép

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

Tôi đang tìm đầu ra sau đây:

100 kg/220 lbs 

tôi nhận được một RuntimeException - badArgumentType (formater) trên dòng String.format tôi.

Trả lời

21

% .0f là chuỗi định dạng cho một float, với 0 chữ số thập phân.

Các giá trị bạn chuyển đến String.format là Chuỗi, Chuỗi khi cần phải là Đôi, Tăng gấp đôi.

Bạn không cần phải chuyển đổi gấp đôi thành chuỗi.

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

Cảm ơn bạn đã trả lời. Đáng lẽ ra tôi phải biết nhiều hơn thế! – wyoskibum

6

này nên làm việc,

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

    return df.format(value); 
} 
+0

Cảm ơn bạn đã trả lời. Nó thực sự là một cái gì đó đơn giản. – wyoskibum

2

Bạn không cần Double.ToString() vì trình định dạng của bạn đã mong đợi một số. Hãy thử điều này:

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

Cảm ơn bạn đã trả lời. Tôi nên ngủ trước khi hỏi !! – wyoskibum