如何将Float转换为String,而不是在黑莓中获取E.

时间:2012-12-11 11:30:25

标签: blackberry

任何方法都可以将Float转换为字符串而不会获得E(指数)。

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

我在textField中使用NumericTextFilter.ALLOW_DECIMAL,它允许小数而不是E.

我变得像这样1.3453E7,但我希望它像1.34538945213,因为我无法在编辑文本中设置我的值。 所以任何方式都可以获得价值。

2 个答案:

答案 0 :(得分:2)

我不是100%确定我理解您要格式化的数字。在美国(我的语言环境)中,号码1.3453E7不等于号码1.34538945213。我认为即使在使用期间完全停止.)的区域设置中对大数字进行分组,您也不会1.34538945213 。所以,我猜你想要什么。

如果您只想在没有float的情况下显示E个号码,那么您可以使用Formatter class。但是,它在BlackBerry上没有您在其他平台上可能采用的相同方法。

你可以试试这个:

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

将显示

  

13453000.0

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

如果我误解了您的问题,请发布一些关于您需要的信息。

我还会提到this utility class that apparently can be used to do more numeric formatting on BlackBerry,虽然我自己没有尝试过。

答案 1 :(得分:0)

试试这个:

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

由于java中的浮点显示,浮点值1.34538945213与double值1.34538945213的表示形式不同。因此,如果要将1.34538945213作为输出,则应使用double值并将其格式化,如示例所示。