22

我需要使用 Formater 创建一个字符串来显示一些双浮点值。我不清楚如何编码。这是我所拥有的:

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

我正在寻找以下输出:

100 kg / 220 lbs

我的 String.format 行出现运行时异常 - badArgumentType(formater)。

4

3 回答 3

38

%.0f 是浮点数的格式字符串,小数点为 0。

您传递给 String.format 的值是 String、String,当它需要是 Double、Double 时。

您不需要将双精度数转换为字符串。

String headerText = String.format("%.0f kg / %.0f lbs", dWeightInKg, dWeightInLbs);
于 2012-08-29T01:46:42.320 回答
10

这应该工作,

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

    return df.format(value);
}
于 2012-08-29T01:46:21.480 回答
2

您不需要 Double.ToString() 因为您的格式化程序已经在期待一个数字。试试这个:

String headerText = String.format("%.0f kg / %.0f lbs", dWeightInKg , dWeightInLbs);
于 2012-08-29T01:47:27.700 回答