4

私はBlackberry RIM APIを使用して非常に簡単なことをしようとしています - 私は1000000フォーマットしたい文字列を持っています1,000,000.00

それを行うために 2 つの RIM API クラスを試しましたが、実際に必要なものはどれもありませんでした。

1) javax.microedition.global.Formatter

String value = "1000000";  
float floatValue = Float.parseFloat(value);  
Formatter f = new Formatter(); //also tried with locale specified - Formatter("en")  
String result = f.formatNumber(floatValue, 2);

結果変数は次の1000000.00とおりです。小数点記号はありますが、グループ区切り記号 (コンマ) がありません。

2) net.rim.device.api.i18n.MessageFormat (Java の標準版の java.text.MessageFormat と互換性があると主張)

 String value = "1000000";  
 Object[] objs = {value};  
 MessageFormat mfPlain = new MessageFormat("{0}");  
 MessageFormat mfWithFormat = new MessageFormat("{0,number,###,###.##}");  
 String result1 = mfPlain.format(objs);  
 String result2 = mfWithFormat.format(objs);  

result1: (mfWithFormatコードがコメントアウトされている場合) 単純な結果が得られます1000000(予想どおりですが、役に立ちません)。結果 2: スローしIllegalArgumentExceptionます。

この時点で、次に何を試すかの選択肢がありません...

助言がありますか?

4

3 に答える 3

3

これを試してください: http://supportforums.blackberry.com/t5/Java-Development/Format-a-decimal-number/mp/763981#M142257

于 2011-02-01T17:34:53.223 に答える
0

これを行うには、独自の関数を作成する必要があります。

于 2011-01-31T09:59:43.453 に答える
-1

これは、独自の関数を作成する必要なく機能します。

String value = "1000000";

MessageFormat msgFormat = new MessageFormat("{0,number,###,###.00}");
String s = msgFormat.format(new Object[]{Integer.valueOf(value)}));

文字列ではなく整数型を渡すようにしてください。そうしないと、次のようになります: java.lang.IllegalArgumentException: Cannot format given Object as a Number

于 2011-12-08T13:53:49.193 に答える