Java printf没有打印加倍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java printf没有打印加倍相关的知识,希望对你有一定的参考价值。

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

for (int i = 0; i < planets.length; i++) {
        System.out.print(planets[i]);
        System.out.printf("     %4.2f", planetDiameter[i]);
        System.out.printf("     %4.2f", planetMass[i]);
        System.out.printf("     %4.2f
", gravity[i]);
    }

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

答案

我会假设你有这些行星的某种特殊类别,你完全应该这样做;并且您将该类的每个实例存储在名为planets的数组中。因此,您应该创建GettersSetters来获取每个行星的值,因为我认为您的代码不能正常工作。无论如何,我向你致敬,感谢你的决心。

如果你想将数字四舍五入到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]) + "
");
}

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

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

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

祝你好运。

以上是关于Java printf没有打印加倍的主要内容,如果未能解决你的问题,请参考以下文章

printf打印不稳定[关闭]

了解汇编、nasm、x86 中的 printf 函数。我不知道为啥这段代码没有打印出任何东西

printf() 在没有双引号的情况下工作,打印随机字符 [重复]

c_cpp 示例打印在C ++中加倍

为什么在执行没有“ n”的printf后打印字符“%”?

Python:从文本文件打印 ascii 艺术,反斜杠加倍