web-dev-qa-db-ja.com

Androidで小数点以下2桁のダブルを印刷するにはどうすればよいですか?

これはばかげた質問かもしれませんが、メソッドを作成していない場合、どのように解決するかは推測できません。たぶんそれを行うための「自然な方法」があるかもしれません、例えばCのように。問題は次のとおりです。

私は変数を持っています:

double a;

そして、小数点以下2桁または3桁でのみ表示したいと思います。見せようとしたとき:

Text.setText("Value of a: " + String.valueOf(a));

それは次のようなものを与えます:

値a:5.234966145

そして私はただ欲しい

値a:5.23

Aの実際の値を変更せずに、おおよその数を表示しますが、実際の数で動作します。

90
ArcDare
yourTextView.setText(String.format("Value of a: %.2f", a));
190
Goz

DecimalFormat またはString.format("%.2f", a);を使用できます

40
FunkTheMonk

DecimalFormatを使用する前に、次のインポートを使用する必要があります。そうしないと、コードが機能しません。

import Java.text.DecimalFormat;

フォーマットのコードは次のとおりです。

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case
txtTextField.setText(precision.format(dblVariable));
26
M. A. Hatab

小数点以下2桁までの数字を表示する場合、2つの可能性があります。1)最初に、小数点がある場合にのみ表示します。例-i)12.10を12.1として表示する、ii)12.00を12として表示する

DecimalFormat formater = new DecimalFormat("#.##"); 

2)次に、存在する小数に関係なく小数桁を表示します。たとえば、-i)12.10は12.10として表示されます。 ii)12は12.00として表示されます。次に、

DecimalFormat formater = new DecimalFormat("#.00"); 
23
Fenil

これを使用してください:

DecimalFormat form = new DecimalFormat("0.00");
etToll.setText(form.format(tvTotalAmount) );

注:データは10進形式(tvTotalAmount)でなければなりません

14
Ravind Maurya
textView2.setText(String.format("%.2f", result));

そして

DecimalFormat form = new DecimalFormat("0.00");
         textView2.setText(form.format(result) );

...ヨーロッパのロケールで「NumberFormatException」エラーが発生するのは、小数点以下の小数点ではなくカンマとして結果を設定するためです。editTextの数値にtextViewを追加するとエラーが発生します。どちらのソリューションも、米国および英国のロケールで優れた機能を発揮します。

5
Ranko1977