Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java printf未打印对吗_Java_Printf - Fatal编程技术网

Java printf未打印对吗

Java printf未打印对吗,java,printf,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]

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

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\n", gravity[i]);
    }
for(int i=0;i

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

我假设你对这些行星有某种特殊的分类,你完全应该这样做;并将该类的每个实例存储在名为
planets
的数组中。因此,您应该创建
getter
setter
来获取每个星球的值,因为我认为您的代码并不是这样工作的。不管怎样,我向你的决心致敬

如果要将数字四舍五入到2小数位,并将其结果四舍五入到最近的上限(我真的不知道如何表达,请参见代码):

DecimalFormat df=新的DecimalFormat(“#####.##”);
df.设置圆形模式(圆形模式.天花板);
for(int i=0;i
DecimalFormat声明中的参数表示要显示的数字量;然后,舍入模式指示是要将数字提高到最近的高值,还是要将数字降低到最近的低值

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

你可以试试看它是如何工作的,我会给你的,这是我最初的想法,很好的信息


祝你好运。

那么如果数字是
1234.5678
你希望输出是
34.57
?你所说的“在小数点前面剪切或四舍五入”是什么意思?printf或format不能满足你的要求。您可以将数字作为字符串拆分为两部分,使用十进制作为拆分器,然后分别对其进行四舍五入并将其重新连接。我只是对这个问题的用途感到好奇,因为这样做实际上完全改变了数字的值。
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");
}