我运行以下程序,返回的值应为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;
}
答案 0 :(得分:4)
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
答案 1 :(得分:1)
表达式(5 / 9)
是整数除法,它导致零值。您可以改为使用double
文字:
deltaT = ((meltTemp - weldPadTemp + 457) * (5.0 / 9.0));
答案 2 :(得分:0)
public static double deltaTemp(double weldPadTemp, double meltTemp){
double deltaT;
deltaT = ((meltTemp-weldPadTemp+457)*(5.0/9));
System.out.println("deltaTemp Result:" + deltaT);
return deltaT;
}
算术表达式(5/9)返回0,因为两个num整数。所以你应该让其中一个浮动(添加.0)
答案 3 :(得分:0)
您将5/9
乘以int
,其结果为0
。
将您的第二个操作数转换为double
。
例如:
deltaT = ((meltTemp-weldPadTemp+457)*((double)5/9));
<强>输出强>
300.0
答案 4 :(得分:0)
5/9
等于0
,因为5
和9
是整数,结果也计算为int
。
这会影响deltaT
,因为乘以任意数字
0
会返回0
。
要使它们double
,请在每个数字后添加D
后缀。
5D / 9D