Java 如何打印带有INT变量的DOUBLE

Java 如何打印带有INT变量的DOUBLE,java,casting,formatting,int,double,Java,Casting,Formatting,Int,Double,我在做学校作业,我被卡住了。我将变量设置为INT,现在无法更改它,因为我将它用于其他计算。有没有办法在点后打印3个数字?我尝试了printf和(double),但没有成功 这是我的一段代码: for (int i = 0; i < 2; i++) // Printing Inverse { System.out.print("["); output.print("["); for (int j = 0; j < 2; j++) { sol[i]

我在做学校作业,我被卡住了。我将变量设置为INT,现在无法更改它,因为我将它用于其他计算。有没有办法在点后打印3个数字?我尝试了
printf
(double)
,但没有成功

这是我的一段代码:

for (int i = 0; i < 2; i++) // Printing Inverse
{
    System.out.print("[");
    output.print("[");
    for (int j = 0; j < 2; j++) {
        sol[i][j] = adj[i][j] / det;
        System.out.printf((double) sol[i][j] + " ");
        output.print((double)sol[i][j] + " ");
    }
}
for(int i=0;i<2;i++)//打印逆
{
系统输出打印(“[”);
输出。打印(“[”);
对于(int j=0;j<2;j++){
sol[i][j]=adj[i][j]/det;
System.out.printf((双)sol[i][j]+);
输出.打印((双)sol[i][j]+“”);
}
}

我认为您应该重新定义此变量,这不会带来灾难性后果,请小心。Eclipse/NetBean将通知您变量是否已完全更改

我不确定,但我认为在Eclipse中的某个地方可以找到一个按钮来更改变量及其所有引用

有没有一种方法可以在点后打印3个数字?我试过使用printf和(double),但没有成功

很好地将
int
转换为
double
不足以获得预期的输出

要用三位小数打印铸造的
double
,需要使用
%3f
作为
printf
方法中的第一个参数,如下所示:

System.out.printf("%.3f", (double) sol[i][j]);
这是一个

注意:


请注意,
sol[i][j]=adj[i][j]/det;
中的除法结果将是一个
double
,因此您需要将变量声明为
double
,而不是
int
,以避免出现异常。

将计算作为int,基本上就是“丢弃”信息。这意味着,从那一点上,它是不可能收回的

由于当前代码看起来像
intVariable=intVariable/intVariable;print((double)intVariable)
,编译器会自动使用整数除法,基本上会丢弃所有小数


您希望代码看起来像
doubleVariable=intVariable/doubleVariable;print(doubleVariable)
,这意味着将除法中的分隔符转换为双精度,并更改
sol
的类型,以便它可以容纳
double
而不是您现在的类型。

我猜
sol
是一个
int
的二维数组,因此,@B001在他的评论中提到,它后面没有数字小数点。如果您只想将除法结果打印出来:
adj[i][j]/det
double
,我建议使用另一个变量来打印结果,即

double result = (double) adj[i][j] / det;
sol[i][j] = (int) result;
System.out.printf("%.3f", result);

int是int!int后面没有数字。请将问题和整个code@B001ᛦ - 这是确保我们拥有所有必要细节的最简单方法。例如,我们需要查看
sol
adj
det
@B001的类型ᛦ 正如Stephency所回答的,如果你想将整数的小数部分打印成3dp,你可以这样做
System.out.println(myInt+“.000”)
;)
%.3f
将打印三位小数。我看不到你答案代码中的句点-在“%”和“3”之间@Abra,如果你看到演示的话,那只是一个打字错误。:)