小数点后只能得到两位数

时间:2018-02-06 09:33:05

标签: java double decimal

我的源代码是:

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

1 个答案:

答案 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));
}