对齐输出,使它在Java中很好用

时间:2015-12-05 10:42:27

标签: java

我有一些输出,我希望通过将所有内容调整为一个表来使其看起来更好一些。

Probability: 0.7470986802363135   |    Approximation: 0.7500081297253628   |    Difference: 0.002909449489049254

Probability: 0.71639599474715   |    Approximation: 0.7198106243620636   |    Difference: 0.003414629614913567

这不是真的有必要,但我只是好奇是否有一种优雅的方式来实现这一目标?我以为我可以舍入小数,这样每个都有相同的长度,但如果可能的话,我宁愿不这样做。

这是输出代码:

for (int j = 0; j < 16; j++){
    double diff = approxResults[j] - probResults[j];
    System.out.println("Probability: " + probResults[j] + "   |    Approximation: " + approxResults[j] + "   |    Difference: " + diff);
}

3 个答案:

答案 0 :(得分:1)

只需定义每个值所需的小数位数,并且所有值都将对齐:

String.format("%.5f",42.42123456789);

将为您提供小数点后42位的格式化值42.42123

在您的情况下,您将使用变量'diff'

替换确切的数字42.xxx

答案 1 :(得分:1)

你可以做到

System.out.println("Probability: %9.6f | Approximation: %9.6f | Difference: %8.5f%n, 
                   probResults[j], approxResults[j] , diff);

答案 2 :(得分:1)

double r = Math.round(a * 1000) / 1000.0;

如果你想在你的程序中使用之后的值,你可以使用Math.round函数,它会给你四舍五入到特定小数的值(这里它会达到3位数,因为我使用了1000)。