我有一个矩阵如下(例如):
1 2
1000000000000 3.15
我希望以适当的方式将其打印成字符串,每个条目恰好占用8个位置:
1.000000 2.000000
1.00e006 3.150000
我一直在研究DecimalFormat,NumberFormat,并想出了一种用自己编码的特定函数来实现它的方法,但是当使用十进制表示法编写数字时它会失败。 无论如何编写(常规或科学记法),任何方法都可以将双精度打印到占用指定数量空格的字符串中?
答案 0 :(得分:1)
为什么不呢?如果需要,您可以使用正则表达式删除符号。这可能需要更多的工作。
public static String formatScientific(double val) {
// Default case.
String out = String.format("%1.6f", val);
// Use scientific notation on values greater than 10.
if (val >= 10)
out = String.format("%1.2e", val).replaceAll("\\+", "").concat("0");
return out;
}
输出:
1.000000
2.000000
1.00e120
3.150000
修改:我应该检查val >= 10
,而不是val >= 10^2
oops ...