任何方法都可以将Float转换为字符串而不会获得E(指数)。
String str = String.valueOf(floatvalue);
txtbox.settext(str);
我在textField中使用NumericTextFilter.ALLOW_DECIMAL
,它允许小数而不是E.
我变得像这样1.3453E7
,但我希望它像1.34538945213
,因为我无法在编辑文本中设置我的值。
所以任何方式都可以获得价值。
答案 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之间的任何值。它不能为零,但如果要显示没有任何小数位的数字,我认为你会使用int
或long
。
如果我误解了您的问题,请发布一些关于您需要的信息。
我还会提到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值并将其格式化,如示例所示。