double
をString
に変換したいと思います。できるだけ桁数を少なくし、最大6桁にします。
そこで、_100.0
_を_100.000000
_に変換するString.format("%.6f", d)
を見つけました。最大精度は正しく機能しますが、_100
_(最小精度)に変換したいと思います。どのような方法がそのように機能しているのか分かりましたか?
これは機能する安価なハックです(そして丸めの問題は発生しません):
String string = String.format("%.6f", d).replaceAll("(\\.\\d+?)0*$", "$1");
String.format("%.0", d)
は小数点以下の桁数を与えません
-または-
String.format("%d", (int)Math.round(f))
このようなsetPrecision関数を作成できませんでした
private static String setPrecision(double amt, int precision){
return String.format("%." + precision + "f", amt);
}
そしてもちろんそれを呼ぶ
setPrecision(variable, 2); //
明らかに、丸めや必要なことは何でもするために、それをtweekすることができます。