私の要件は、最後の変数 値が 1 未満、たとえば 0.0045 の場合です。
次に、結果が次のようになるように、小数点以下4桁を出力する必要があります0.0045
または、最後の変数値が 1 より大きい場合 (例: 444.8183)
次に、結果が次のようになるように、小数点以下2桁のみを印刷する必要があります444.82
私はプログラムを書きましたが、正常に動作していますが、三項演算子を使用するのが好きです
public class Test {
private static NumberUtil numberUtil = NumberUtil.getInstance();
public static void main(String args[]) {
float last = (float) 444.8183;
String result = "";
if (last > 1) {
result = numberUtil.formatNumber(last, 2);
} else {
result = numberUtil.formatNumber(last, 4);
}
System.out.println(result);
}
}
import java.text.DecimalFormat;
public class NumberUtil {
private static NumberUtil _instance = new NumberUtil();
public static NumberUtil getInstance() {
return _instance;
}
public String formatNumber(double d, int decPts) {
if (2 == decPts)
return new DecimalFormat("#,###,###,##0.00").format(d);
else if (0 == decPts)
return new DecimalFormat("#,###,###,##0").format(d);
else if (3 == decPts)
return new DecimalFormat("#,###,###,##0.000").format(d);
else if (4 == decPts)
return new DecimalFormat("0.0000").format(d);
return String.valueOf(d);
}
public double formatDoubleNumber(double d){
double newD = Math.round(d*100.0)/100.0;
return newD;
}
}