これを使って
public float decimalDigits(int decimaldigits, float x){
final NumberFormat numFormat = NumberFormat.getNumberInstance();
numFormat.setMaximumFractionDigits(decimaldigits);
final String resultS = numFormat.format(x);
String parsable=resultS.replace(".", "");
parsable=resultS.replace(",", ".");
float ris=Float.parseFloat(parsable);
return ris;
}
ドット規則によって引き起こされる解析の問題を回避するために、コードに文字列の置換を追加しました (たとえば、1234.34 は、float での再解析でエラーを引き起こすフォーマットの後に 1.234,34 になります)。
あなたが単にフォーマットの視覚化の問題である場合は、文字列を使用することもでき、浮動小数点変数に小数点以下の桁数がないことは問題ではないため、これは別の有効な方法です。
public String decimalDigits(int decimaldigits, float x){
final NumberFormat numFormat = NumberFormat.getNumberInstance();
numFormat.setMaximumFractionDigits(decimaldigits);
final String resultS = numFormat.format(x);
return resultS;
}
誰かがこのソリューションの有効性について疑問を持っている場合は、詳細を尋ねるか、コードをコンパイルしてテストしてから反対票を投じてください。コードはテスト済みで、魅力的に機能します。
警告
メソッドはFloat.parseFloatを使用するため、明らかにfloatを渡す必要があります。doubleを渡したい場合は、メソッドに渡す前に float へのキャストを使用する必要があります。そうでない場合は、すべてのメソッド プリミティブを変更して float から parse する必要がありますダブル。double と float は異なります。