3

まず第一に、私の悪い英語を話すことを許してください。

私はAndroid開発に不慣れです。私は問題を抱えており、あなたはそれを解決できると思います。

問題は:

12345678987654321私はAndroidアプリのように非常に大きなdouble値を持っていますがEditText、それを表示したい場合は、このように表示されます12345678987654300この場合、私の値の文字が15文字を超えると、Androidは残りの文字を「0」で表示します

何をしなければならないのかわかりません。

私はこのコードを使用しています:

DecimalFormat df = new DecimalFormat("#.#########");
double a = Distancevals[1] * Distancevals[2];
//Distancevals is an array of double with big values
EditText editto = (EditText)findViewById(...);
editto.setText(df.format(a));
4

4 に答える 4

1

Double12345678987654321番号を形式で保存する1.23456789876543E16ため、番号の末尾が失われます21。結果をフォーマットすると、数値は17の記号で構成されていることがわかっているため、format関数は数値の末尾に。の代わりに2つのゼロを追加します21

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

DecimalFormat df = new DecimalFormat("#.#########");
BigDecimal a = new BigDecimal(Distancevals[1] * Distancevals[2]);
// Distancevals is an array of double with big values
EditText editto = (EditText) findViewById(...);
editto.setText(df.format(a));
于 2011-12-29T12:38:10.067 に答える
0

あなたはそれを次のように表示しますeditto.setText(a+"");

あなたの場合、EditTextは何もしていませんが、DecimalFormatがあなたの番号を変更しています。

于 2011-12-29T12:34:31.887 に答える
0

これを試してみてください

DecimalFormat df= new DecimalFormat("###############00");
double a=Distancevals[1]*Distancevals[2];
//Distancevals is an array of double with big values
EditText editto=(EditText)findViewById(...);
editto.setText(df.format(a));
于 2011-12-29T11:33:36.470 に答える