Java printf没有打印加倍

时间:2018-01-02 20:40:32

标签: java printf

我正在尝试格式化我的十进制输出,以便它切割/舍入小数,以便它们只有四位数;前面两个,后面两个。

export

但这根本不会削减或舍入小数的前面。有没有办法缩短小数的前半部分,这样我就不会得到大数?

1 个答案:

答案 0 :(得分:0)

我将假设你对这些行星有一些特殊的等级,你完全应该这样做;并将该类的每个实例存储在名为planets的数组中。因此,您应该创建 Getters Setters 来获取每个星球的值,因为我认为您的代码不能正常工作。无论如何,我向你表示敬意。

如果您想将数字四舍五入到 2 小数位, 将结果四舍五入到最近的上限(我实际上并不是这样)知道如何表达这一点,见代码):

DecimalFormat df = new DecimalFormat("####.##");
df.setRoundingMode(RoundingMode.CEILING);
for (int i = 0; i < planets.length; i++) {
    System.out.print(planets[i]);
    System.out.println("     " + df.format(planetDiameter[i]));
    System.out.println("     " + df.format(planetMass[i]));
    System.out.println("     " + df.format(gravity[i]) + "\n");
}

DecimalFormat声明中的参数,表示要显示的数字量;然后舍入模式指示是否要数字提升到最接近的最高值,或者数字降低到最接近的低值。

但是,我无法测试这个,因为我没有planets数组,因此我没有数据可供尝试。

你可以尝试看看它是如何工作的,我会给你this,这是我得到这个想法的原始帖子,很好的信息。

祝你好运。