0

数字が文字列形式であり、2桁の小数で浮動小数点数に変換したい。数値の文字列をカンマで浮動小数点に変換する

文字列形式の数字は、「1」または「1,128」(1,188)に似ています。

は当初、私は、文字列からカンマを削除することができFloat.parseFloat Iを行う前に

String stringNumber = "1"; //works fine EXPECTED OUTPUT -- 1.00 
String stringNumber = "1,128"// fails because it has a comma. EXPECTED OUTPUT -- 1,128.00 

Float f = Float.parseFloat(stringNumber); 
String s = String.format("%.2f", f); 

を試みたが、最終用途形式でバックコンマ

format("% ,d", number) 

取得するには、以下のように私は単純なことについて、私がたくさんやっていると思います。

これを実現する簡単な方法があります。

ありがとうございます。 Rao

EDIT これまでのところ私は何を得ましたか? 入力 - "1,128" 次のコードを使用すると "1,128.0"に変換されます 唯一の欠点は余分な小数点です。 decimalFormatを使用して余分な小数点を追加するにはどうすればいいですか?

String qa = "1,128"; 
String nocomma = qa.replace(",", ""); 
Float f = Float.parseFloat(nocomma); 
String s = String.format("%.2f", f); 

DecimalFormat formatter = new DecimalFormat("#,###,###.0#"); 
String yourFormattedString = formatter.format(f); 
return yourFormattedString; 

答えて

0

1.Use StringTokenizer

java.util.StringTokenizer stringNumber = new StringTokenizer("1,128", ","); 
StringBuffer sb = new StringBuffer(); 
while (stringNumber.hasMoreTokens()) { 
    sb.append(stringNumber.nextToken()); 
} 
Float f = Float.parseFloat(sb.toString()); 
.Use ","

その後parseFloat

String stringNumber = "1,128"; 
String result = null; 
result = stringNumber.replace(",",""); 
Float f = Float.parseFloat(result); 

を置き換えるために""を使用して、交換してください

編集

// edited here ,change to this 
DecimalFormat formatter = new DecimalFormat("#,###,##0.00"); 
String yourFormattedString = formatter.format(f); 
Log.e("DecimalFormat", yourFormattedString); 

OUTPUT

1,128.00 
+0

は私がこれを行うことができます知っているが、私の入力は1128であり、私が行っているparseFloatはをに変換した場合、ご回答いただきありがとうございます1128.00。私の希望する出力は1,128.00です。私はdecimalFormatterのDecimalFormatフォーマッタ=新しいDecimalFormat( "#、###、###。##") 'を使用できますが、.00はまだ表示されません。私は10進フォーマッタを正しいものにするのではないと思う。 – BRDroid

+0

問題が最後に0しかない場合は、1,128を文字列に変換し、最後に00を追加すると助けになるでしょうか? – Simo

+0

いいえそれは小数点がある可能性がありますcuzそこに – BRDroid

関連する問題