【问题标题】:Number shows 1e+06 instead of 1 000 000数字显示 1e+06 而不是 1 000 000
【发布时间】:2013-07-09 04:45:25
【问题描述】:

我需要在文本视图中显示一些数字,但是当它们有 6 个或更多数字时,它们看起来像 1e+06 而不是 1 000 000。

我必须动态地创建文本视图,这是我能够做到的,并且一切正常。只是那个东西没有像我想的那样显示。我在 textview 中找不到可以避免这种类型的数字显示的属性。

是否与文本视图的大小有关?

这是我用来创建它们的java代码。

descrip=new TextView(context);

descrip.setPadding(0, 10, 0, 10);

descrip.setGravity(Gravity.CENTER);

descrip.setTextAlignment(Gravity.CENTER);

scrip.setText(c.getString(c.getColumnIndex("Description")));

descrip.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);

descrip.setHeight(LinearLayout.LayoutParams.MATCH_PARENT);

descrip.setBackground(img);

layDescrip.addView(descrip);

我怎样才能让它们像往常一样显示数字?

非常感谢您的宝贵时间

【问题讨论】:

  • 你确定不是这样存储的吗? Coz 数据库存储字符串,你在这里得到一个字符串。可能是它以指数形式存储。
  • 将其打印到 Logcat 以查看您实际得到的结果。
  • 是的,伙计们,你完全正确。这就是存储 6 位或更多位数字的方式。但是 Integer.Parsing 它们,或 Double 解析它们就可以了!谢谢你们! :)

标签: android textview numbers size


【解决方案1】:

你应该使用

scrip.setText(Integer.toString(c.getInt(c.getColumnIndex("Description"))));

【讨论】:

  • 做到了! :) 我实际上使用了 Integer.parseInt 并得到了它。呵呵 谢谢!你给了我这个主意:)
【解决方案2】:

您也可以简单地通过使用java.math.BigDecimal 类来做到这一点。您可以使用BigDecimal.valueOf() 将Double 值转换为BigDecimal,然后使用.toPlainString() 将其转换为纯十进制字符串。

double val = c.getDouble(c.getColumnIndex("Description"));
scrip.setText(BigDecimal.valueOf(val).toPlainString());

来源:How to Convert Exponential Form of a number to Decimal Form in java

【讨论】:

  • 非常感谢您的建议!我会记住类似的操作。再次感谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
相关资源
最近更新 更多