2012-08-29 40 views
11

我需要使用Formater創建一個字符串來顯示一些雙精度值。我不清楚如何編碼。以下是我有:Android:帶Double值的字符串格式

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

我在尋找以下的輸出:

100 kg/220 lbs 

我得到一個RuntimeException - 在我的String.format線badArgumentType(格式化器)。

回答

21

到%.0f是一個浮動的格式字符串,0位小數。

傳遞給String.format的值是String,String,當它需要Double,Double時。

您不需要將雙打轉換爲字符串。

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

感謝您的回覆。我應該知道更好! – wyoskibum

6

這應該工作,

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

    return df.format(value); 
} 
+0

感謝您的回覆。這其實很簡單。 – wyoskibum

2

因爲您的格式化程序已經在等待一個數字,所以您不需要Double.ToString()。試試這個:

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

感謝您的回覆。在問我之前,我應該睡在它上面! – wyoskibum