我的源代码是:
public static double roundDown(double d) {
double value = Math.floor(d * 1e2) / 1e2;
if(Double.toString(value).contains("."))
return value;
else
return Double.parseDouble(Double.toString(value)+".00");
}
当我通过37187.200000
时,输出结果为37187.19
,我想要37187.20
答案 0 :(得分:1)
如果你想在小数点后显示两位数,那么你只需要像:
那样四舍五入public static String roundDown(double d) {
DecimalFormat f = new DecimalFormat("0.00");
return f.format(d);
}
但是如果你想将37187.20存储在" double"类型的变量中,那么它是不可能的,因为double存储在二进制中。因此保存尾随零是没有意义的。这将删除不重要的零。
public static double roundDown(double d) {
DecimalFormat f = new DecimalFormat("0.00");
return Double.parseDouble(f.format(d));
}