【问题标题】:How to print double 2D array in showMessageDialog?如何在 showMessageDialog 中打印双二维数组?
【发布时间】:2012-10-09 21:46:17
【问题描述】:

我正在编写一个逆矩阵的程序 所以我将结果存储在

double matrix[][] = new double[n][2*n];

当我在 consol 中打印结果时,它会是正确的 但现在我尝试改进程序,我想在中打印数组

JOptionPane.showMessageDialog

所以我写

StringBuilder builder = new StringBuilder(n*n);
for (i = 0; i < n; i++){
    for(j = 0; j < n; j++){
        builder.append(matrix[i][j]);
        builder.append(",");
    }
    builder.append("\n");
}
JOptionPane.showMessageDialog(null, builder.toString(), "The inverse matrix is:", JOptionPane.INFORMATION_MESSAGE);

现在问题输出应该是双倍的,例如这样

-0.14285714285714285    0.2857142857142857
0.4285714285714286  -0.35714285714285715    

但是每次使用任何输入矩阵我都会得到相同的结果

1.0,0.0,
-0.0,1.0,

谢谢..对不起我的英语不好


好的,解决了 我保持矩阵的大小为

double matrix[][] = new double[n][2*n];

并按照 Reimeus 所说的进行一些修改来纠正循环

for (int j = n; j < n*2; j++) {

谢谢大家。。 这是这个很棒的网站上的第一个问题,我很快就得到了答案。非常感谢您

【问题讨论】:

  • 为什么矩阵的逆不是方阵?在上面的代码中,它是 n 乘 2n
  • 您是否验证过该矩阵确实包含正确的值?

标签: java arrays string double stringbuilder


【解决方案1】:

我相信你的矩阵是 n*n。您需要更正这一行:

  double matrix[][] = new double[n][2*n];

  double matrix[][] = new double[n][n];

如果大小正确,请更正迭代。

格式化请使用格式化类DecimalFormat,如下:

 String fPattern = "0.00000000000000000"; //please supply the right format pattern
 DecimalFormat dFormat = new DecimalFormat(fPattern);
 StringBuilder builder = new StringBuilder(n*n);
 for (i = 0; i < n; i++){
    for(j = 0; j < n; j++){
      builder.append(dFormat.format(matrix[i][j]));
      builder.append(",");
    }
    builder.append("\n");
 }

如果您总是希望有固定长度的小数,请使用0.00000000000000000 作为模式。如果你想改变长度,请使用#.#################

【讨论】:

  • 这不能回答 OP 的问题。
  • 好的,我将其更正为double matrix[][] = new double[n][n];,但问题仍然是如何在不丢失准确性的情况下将“double”转换为“String”
  • 好的,它解决了我将矩阵的大小保持为double matrix[][] = new double[n][2*n];,并按照 Reimeus 所说的对循环进行了一些修改for (int j = n; j &lt; n*2; j++) {,谢谢大家。这是本网站的第一个问题,我很快得到答复..非常感谢您
  • 用格式更新了答案。我注意到数组维度和迭代大小不匹配,这就是问题所在。我认为尺寸不正确,但它是迭代。很高兴知道,它的答案解决了您的问题。
猜你喜欢
  • 2012-08-31
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多