gpt4 book ai didi

java - 尝试格式化字符串时出现 IllegalFormatPrecisionException

转载 作者:搜寻专家 更新时间:2023-11-01 01:00:56 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,提示用户输入两个 3×3 矩阵并显示他们的乘积。

例如,用户可以输入:

Matrix A: 2 4 6 8 10 12 14 16 18Matrix B: 1 2 3 4 5.6 6.6 7.4 8.1 9

Below is what I have tried, but I keep getting this error. Any help to point me in the right direction would be appreciated. I'm trying to get it to one decimal place:

Exception in thread "main" java.util.IllegalFormatPrecisionException: 2    at java.util.Formatter$FormatSpecifier.checkInteger(Formatter.java:2892)    at java.util.Formatter$FormatSpecifier.(Formatter.java:2643)    at java.util.Formatter.parse(Formatter.java:2480)    at java.util.Formatter.format(Formatter.java:2414)    at java.io.PrintStream.format(PrintStream.java:920)    at java.io.PrintStream.printf(PrintStream.java:821)    at Exercise6_25.main(Exercise6_25.java:55)

import java.util.Scanner;

public class matrixCalc
{
public static void main(String args[])
{
Scanner s= new Scanner(System.in);

int i,j,k;
int n=3;

double a[][]= new double[n][n];
double b[][]= new double[n][n];
double c[][]= new double[n][n];

System.out.println("enter the array elements of a:");

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=s.nextDouble();
}
System.out.print(" ");
}

System.out.println(" ");
System.out.println("enter the array elements of b:");

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
b[i][j]=s.nextDouble();
}
System.out.print(" ");
}

System.out.println(" ");
System.out.println("the result matrix is:");

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
System.out.printf("%.2d", c[i][j]+" ");
}
System.out.println();
}
}
}

最佳答案

您正在使用 %d 说明符,它需要一个整数参数——但是您给它一个 String(因为 c[i][j ]+"" 在连接时将 c[i][j] 转换为 String

此外,%d 说明符根本不使用小数点。由于整数类型可以隐式转换为浮点类型,%f 说明符就是您要查找的内容。

最后,格式说明符中小数点后的数字告诉它要转到多少个小数位。你说你只想要一位小数,所以让我们把它设为 1。

所以我们最终得到的是:

System.out.printf("%.1f ", c[i][j]); 

参见 Formatter Javadocs对于所有可能的格式说明符的(有点令人难以置信的)描述。 (如果您不能理解那里的所有内容,请不要太担心;反正您永远不需要其中的大部分内容。)

关于java - 尝试格式化字符串时出现 IllegalFormatPrecisionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com