小数点以下2桁のdouble値を取得する方法。
例えば
もし
i=348842.
double i2=i/60000;
tv.setText(String.valueOf(i2));
このコードは5.81403333
を生成します。
しかし、私は5.81
だけが欲しいです。
だから私は何をすべきか?
DecimalFormat を使用します。
DecimalFormatは、10進数をフォーマットするNumberFormatの具象サブクラスです。西洋、アラビア、インドの数字のサポートを含め、あらゆるロケールで数字を解析およびフォーマットできるように設計されたさまざまな機能を備えています。また、整数(123)、固定小数点数(123.4)、科学表記法(1.23E4)、パーセンテージ(12%)、通貨額($ 123)など、さまざまな種類の数値もサポートしています。これらはすべてローカライズできます。
コードスニペット-
double i2=i/60000;
tv.setText(new DecimalFormat("##.##").format(i2));
出力-
5.81
String.format("%.2f", i2)
はどうですか?
ここで、小数点以下を短くしない方法を示します。ここでは、小数点以下4桁まで短くします。
double value = 12.3457652133
value =Double.parseDouble(new DecimalFormat("##.####").format(value));
私は最高で最も簡単な解決策は(KISS)だと思う:
double i = 348842;
double i2 = i/60000;
float k = (float) Math.round(i2 * 100) / 100;
これは、フォーマットだけではなく値を返します。
double number1 = 10.123456;
double number2 = (int)(Math.round(number1 * 100))/100.0;
System.out.println(number2);
i=348842.
double i2=i/60000;
DecimalFormat dtime = new DecimalFormat("#.##");
i2= Double.valueOf(dtime.format(time));
v.setText(String.valueOf(i2));
数値をcharシーケンスにフォーマットしている間に開発者の頭に飛び込むべき最初のものは、操作を逆にすることができるようにそのような詳細に注意する必要があります。
そして、他の側面は適切な結果を提供しています。したがって、数値を切り捨てるか、丸める必要があります。
あなたが始める前に、あなたはあなた自身に尋ねるべきです、私は価値に興味があるかどうか。
目標を達成するには複数のオプションがありますが、それらのほとんどは Format および Formatter を参照していますが、 this answer を参照することをお勧めします。