0

在不获取 E(指数)的情况下将 Float 转换为字符串的任何方法。

String str = String.valueOf(floatvalue);
txtbox.settext(str);

NumericTextFilter.ALLOW_DECIMAL在我的 textField 中使用它允许十进制但不允许 E。

我正在变得这样,1.3453E7但我想要它,1.34538945213因为 ei 无法在编辑文本中设置我的值。所以任何方式都可以在没有 e 的情况下获得价值。

4

2 回答 2

2

我不是 100% 确定我了解您要格式化的数字。在美国(我的语言环境),数字1.3453E7不等于数字1.34538945213。我认为即使在使用点或句号.)来分组大量数字的语言环境中,您也不会使用1.34538945213. 所以,我猜你想要什么。

如果您只想显示float没有 的数字E,那么您可以使用Formatter 类。但是,它在 BlackBerry 上的方法并不像您在其他平台上所期望的那样。

你可以试试这个:

     float floatValue = 1.3453E7f;
     Formatter f = new Formatter();
     String str = f.formatNumber(floatValue, 1);
     text.setText(str);

这将显示

13453000.0

上面的1方法参数表示要显示的小数位数,可以是 1 到 15 之间的任何值。它不能为零,但如果你想显示一个没有任何小数位的数字,我会假设你会使用intlong为此。

如果我误解了您的问题,请发布更多关于您需要什么的描述。

我还会提到这个实用程序类,它显然可以用来在 BlackBerry 上进行更多的数字格式化,尽管我自己没有尝试过。

于 2012-12-12T09:13:53.917 回答
0

试试这个:

Double floatValue = 1.34538945213;
Formatter f = new Formatter();
String result = f.format("%.11f", floatValue);

由于 java 中的浮点表示,浮点值 1.34538945213 与双精度值 1.34538945213 的表示不同。所以,如果你想得到 1.34538945213 作为输出,你应该使用一个双精度值并按照示例中所示的格式对其进行格式化。

于 2012-12-11T11:34:30.073 回答