在基本Java程序中返回错误的值

在基本Java程序中返回错误的值,java,Java,我运行以下程序,返回的值应该是deltaTemp Result:300,但我得到的是deltaTemp Result:0.0。我是不是错过了一些基本的东西?我没有得到任何错误 static double weldPadTemp = 177; static double meltTemp = 260; public static void main(String[] args){ deltaTemp(weldPadTemp, meltTemp); } public static d

我运行以下程序,返回的值应该是deltaTemp Result:300,但我得到的是deltaTemp Result:0.0。我是不是错过了一些基本的东西?我没有得到任何错误

static double weldPadTemp = 177;
static double meltTemp = 260;

public static void main(String[] args){

    deltaTemp(weldPadTemp, meltTemp);

}

public static double deltaTemp(double weldPadTemp, double meltTemp){
    double deltaT;
    deltaT = ((meltTemp-weldPadTemp+457)*(5/9));

    System.out.println("deltaTemp Result:" + deltaT);

    return deltaT;

}

5/9求值为0,因为两个操作数都是int值

一些例子:

int x = 5/9;
System.out.println(x);

double y;
y = 5/9;
System.out.println(y);

//5.0 is a double value so the operation is done in double arithmetics
y = 5.0/9;
System.out.println(y);
产出:

0
0.0
0.5555555555555556

5/9求值为0,因为两个操作数都是int值

一些例子:

int x = 5/9;
System.out.println(x);

double y;
y = 5/9;
System.out.println(y);

//5.0 is a double value so the operation is done in double arithmetics
y = 5.0/9;
System.out.println(y);
产出:

0
0.0
0.5555555555555556
算术表达式5/9返回0,因为两个num都是整数。所以你应该让其中一个浮点数相加

算术表达式5/9返回0,因为两个num都是整数。因此,您应该使其中一个浮点相加。0

您将乘以5/9作为一个整数,其结果为0

将第二个操作数强制转换为双精度

例如:

deltaT = ((meltTemp-weldPadTemp+457)*((double)5/9));
输出

将5/9乘以整数,其结果为0

将第二个操作数强制转换为双精度

例如:

deltaT = ((meltTemp-weldPadTemp+457)*((double)5/9));
输出

表达式5/9是整数除法,结果为零值。您可以改为使用双文本:

deltaT = ((meltTemp - weldPadTemp + 457) * (5.0 / 9.0));
表达式5/9是整数除法,结果为零值。您可以改为使用双文本:

deltaT = ((meltTemp - weldPadTemp + 457) * (5.0 / 9.0));
5/9等于0,因为5和9是整数,所以结果也计算为int。 这将影响deltaT,因为将任何数字乘以 0返回0

要使它们加倍,请在每个数字后加上D后缀

5D / 9D
5/9等于0,因为5和9是整数,所以结果也计算为int。 这将影响deltaT,因为将任何数字乘以 0返回0

要使它们加倍,请在每个数字后加上D后缀

5D / 9D