【发布时间】:2017-05-11 11:14:54
【问题描述】:
我正在打印一个矩阵,每个元素在屏幕上打印的长度相同,以便于阅读。
如果我这样做:
System.out.printf("%.16f", x);
然后我得到不同的长度,具体取决于前面的(整体)值:
x = 1;
x = 2.345;
x = 10;
x = 1243.5678;
提供以下输出:
// 1.0000000000000000
// 2.3450000000000000
// 10.0000000000000000
// 1243.5678000000000000
这使矩阵变得混乱。如何将整个双精度数(包括小数和整数)限制为一定长度?因此,对于前面的情况,输出将是:
// 1.0000000000000000
// 2.3450000000000000
// 10.000000000000000
// 1243.5678000000000
编辑#1
我不想只用零填充。前导零没有吸引力,可能会导致误读。即使我现在有%.16f,我可能会使用较少的精度,并且每个数字都是重要的(并且非零)。
【问题讨论】:
-
Right pad with zeros的可能重复
-
但是如果你指定你想要 16 位小数,你会期待什么呢?
%.16f