【问题标题】:get only two digit after decimal point只得到小数点后两位数
【发布时间】:2018-02-06 09:33:04
【问题描述】:

我的源代码是:

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

【问题讨论】:

标签: java double decimal


【解决方案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));
}

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2022-12-05
    • 2010-10-08
    • 1970-01-01
    相关资源
    最近更新 更多