0

E (指数) を取得せずに Float を文字列に変換する任意の方法。

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

そしてNumericTextFilter.ALLOW_DECIMAL、私はテキストフィールドで小数を許可するがEを許可しないを使用しています.

私はこのようになっていますが、編集テキストで自分の値を設定できないために1.3453E7、何かしたいのです。1.34538945213したがって、eなしで値を取得する方法。

4

2 に答える 2

2

フォーマットしようとしている数値を 100% 理解しているわけではありません。米国 (私のロケール) では、 number1.3453E7は number と等しくありません1.34538945213ピリオドまたはピリオド( .) を使用して多数のグループをグループ化するロケールでも、1.34538945213. だから、私はあなたがここで何を望んでいるかを推測しています。

floatを使用せずに数値を表示したいだけの場合は、 Formatter クラスEを使用できます。ただし、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ため。

問題を誤解している場合は、必要なものについてもう少し説明を投稿してください。

また、BlackBerry でより多くの数値の書式設定を行うために使用できると思われるこのユーティリティ クラスについても言及しますが、自分で試したことはありません。

于 2012-12-12T09:13:53.917 に答える
0

これを試して:

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

Java での浮動小数点表現のため、float 値 1.34538945213 は double 値 1.34538945213 と同じ表現ではありません。したがって、出力として 1.34538945213 を取得する場合は、double 値を使用して、例に示すようにフォーマットする必要があります。

于 2012-12-11T11:34:30.073 に答える