web-dev-qa-db-ja.com

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

String.format行にruntimeexception-badArgumentType(formater)が表示されます。

19
wyoskibum

%.0fは、小数点以下0桁のフロートのフォーマット文字列です。

String.formatに渡す値は、Double、Doubleにする必要がある場合はString、Stringです。

Doubleを文字列に変換する必要はありません。

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

これはうまくいくはずです

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

    return df.format(value);
}
8
VendettaDroid

フォーマッタはすでに数値を想定しているため、Double.ToString()は必要ありません。これを試して:

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