1

我在 Edittext 中有一个字符串,我将其转换为这样的浮点数:

float montantFac = Float.valueOf(etMontantFac.getText().toString());

我将它保存在数据库中,然后从数据库中取回它,然后再次将其分配给此 EditText。

etMontantFac.setText(facture.getString(facture.getColumnIndexOrThrow("montant_fa"))); 

我的问题是它显示了一些带指数的数字。例如,1000000显示如下:1e+06

我怎样才能只显示带有数字的值(没有字母或+或其他任何东西)?

编辑 :

@Pratik:谢谢,效果很好!

我也需要对 ListView 的一个项目执行相同的操作,但在这种情况下我不知道如何使用您的解决方案。你能帮助我吗 ?

这是我的 ListView :

    private void fillData(){
    Cursor cuFactures = db.recupListeFacture(triFactures, argumentWhereVhc, choixVhc, argumentWhereGar, choixGar);
    startManagingCursor(cuFactures);

    ListAdapter adapter = new SimpleCursorAdapter(this,
            R.layout.facture_ligne,
            cuFactures,
            new String[] {"libelle_fa", "nom_vhc", "montant_fa", "nom_garage", "date_fa"},
            new int[] {R.id.listeNomFac, R.id.listeNomVhcFac, R.id.listeMontantFac, R.id.listeNomGarFac, R.id.listeDateFac});

    setListAdapter(adapter);

相关字段始终为“montant_fa”

先感谢您!

4

2 回答 2

2

检查此链接的格式

http://download.oracle.com/javase/tutorial/i18n/format/decimalFormat.html

试试这个方法

float val = facture.getFloat(facture.getColumnIndexOrThrow("montant_fa"));

NumberFormat nf = NumberFormat.getNumberInstance(loc);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(pattern);
String output = df.format(value);
etMontantFac.setText(output);
于 2011-09-14T13:39:08.560 回答
0

我知道这是旧的,但这里是sqlite 和 listview 之间的格式数据,以防有人试图做同样的事情。我有类似的问题并用它解决了。

这是我的例子

adapter = new SimpleCursorAdapter(....);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
        @Override
        public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
               if (columnIndex == cursor.getColumnIndex("columnname")) {
                   TextView tv = (TextView) view;
                   NumberFormat nf = NumberFormat.getInstance(Locale.ENGLISH);
                   tv.setText(nf.format(cursor.getInt(columnIndex)));
                   // must return true to be applied
                   return true;
               }
               return false;
        }
});
于 2015-03-05T03:15:25.243 回答