在基本Java程序中返回错误的值
我运行以下程序,返回的值应该是deltaTemp Result:300,但我得到的是deltaTemp Result:0.0。我是不是错过了一些基本的东西?我没有得到任何错误在基本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
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