この問題は2倍(10進数)で発生しました。
double = 1.234567の場合、String.format("%.3f", myString);
を使用します
結果は1.234になります
しかし、私のダブルが10のとき
結果は10,000になります
これを10にしたい
彼らはそれが「有用」であるときだけ彼が小数を示す必要があると言う方法ですか?
私はこれに関するいくつかの投稿を見ましたが、それはphpまたはc#であり、これについてAndroid/Java用の何かを見つけることができませんでした(多分私はよく見えません)。
皆さんが私を助けてくれることを願っています。
編集、今のところ私はこのようなものを使用します:myString.replace(",000", "");
しかし、私は彼らがこのためのより「フレンドリーな」コードだと思います。
DecimalFormat と#パラメーターを使用する方法です。
public static void main(String[] args) {
double d1 = 1.234567;
double d2 = 2;
NumberFormat nf = new DecimalFormat("##.###");
System.out.println(nf.format(d1));
System.out.println(nf.format(d2));
}
結果として
1.235
2
ダブルを使用しないでください。精度がいくらか失われる可能性があります。これが汎用関数です。
public static double round(double unrounded, int precision, int roundingMode)
{
BigDecimal bd = new BigDecimal(unrounded);
BigDecimal rounded = bd.setScale(precision, roundingMode);
return rounded.doubleValue();
}
あなたはそれを呼び出すことができます
round(yourNumber, 3, BigDecimal.ROUND_HALF_UP);
「精度」は、希望する小数点の数です。
試してみる
double amount = 1.234567 ;
NumberFormat formatter = new DecimalFormat("##.###");
System.out.println("The Decimal Value is:"+formatter.format(amount));