2017-04-25 9 views
-2

通常、文字列を浮動小数点数に変換するときには、10進数の末尾の0が失われます。 具体的な理由から、私が文字列に持つ末尾の0の数を正確に保持する必要があります。 私は現在、これに使用するコードはJavaで文字列を0にすることなく、文字列を浮動小数点に変換するにはどうすればよいですか?

float res = Float.parseFloat(avgStr); 

であるが、この方法では、末尾の0を削除します。これを行うには良い方法がありますか?

ご迷惑をおかけして申し訳ありません。

+1

これらのゼロで何をしたいですか?もしそれを印刷したいならば、浮動小数点の後ろに正確な '10 '桁を表示する' System.out.printf( "%。10f"、float_data);を使うことができます。数字が残っていなくても、そこに「0」が表示されます。 –

+0

あなたは正しいです、浮動小数点数は末尾のゼロを格納しないので、文字列がどのようなものか気にするならば、変換する前に文字列をチェックする必要があります。 – azurefrog

+1

技術的には0が格納され、番号はhttps://en.wikipedia.org/wiki/Single-precision_floating-point_formatで表されます。文字列を計算する必要がない場合は、変換しないでください。 – maraca

答えて

1

は、このお試しください: "%の.2f" で

float res = Float.parseFloat(avgStr); 
System.out.printf("%.2f", res); 

を、それは末尾の0を失うことなく、小数点以下2桁を表示します。 それとも、この例で試すことができます:あなたはデータ型floatに変換する文字列の正確な小数点以下の桁を取得したい場合は

String st = "12.0000"; 
float dd = Float.valueOf(st); 
int len = st.substring(st.indexOf(".") + 1, st.length()).length(); 
System.out.printf("%." + len + "f", dd); 

を。 :)

関連する問題