【问题标题】:multiplying DecimalFormat number (no longer rounded properly)乘以 DecimalFormat 数(不再正确舍入)
【发布时间】:2016-01-18 22:23:14
【问题描述】:

我基本上是在尝试使用 DecimalFormat 来获得两位小数。我取两个整数值,然后将它们相除并转换为我在下面输入示例值的双精度值。当我按照以下方式进行操作时,我得到的值不再是小数点后两位。似乎是当乘以 3 时,它失去了四舍五入。

DecimalFormat df = new DecimalFormat("#.00");
double d = Double.parseDouble(df.format((double)5/6))*3;
System.out.println(d);

您能告诉我为什么会发生这种情况以及如何解决这个问题吗?

【问题讨论】:

    标签: java numbers decimal decimalformat


    【解决方案1】:

    在声明中:

    double d = Double.parseDouble(df.format((double)5/6))*3;
    

    不保留格式(Double 返回双精度)。

    你可以这样做,例如:

    System.out.println(df.format(d));
    

    【讨论】:

    • 感谢磨坊 Svea - 是的,从 println 作品中调用 format 方法。
    猜你喜欢
    • 1970-01-01
    • 2018-06-25
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    相关资源
    最近更新 更多