我正在尝试用Java编写一个小程序,将华氏温度转换为摄氏温度。它涉及减去32并乘以5/9。所以我做到了。
double Fahrenheit = 100; double celsius = (Fahrenheit - 32) * (5/9); System.out.println(celsius);
但是由于某种原因5/9返回零,这甚至毁了一切
double s = 5/9;
返回零,我不知道为什么。我发现自己可以做到的唯一方法是声明所有内容并逐步进行。
double x = 5, p = 9, n = (x/p), Fah = 100; double Cel = Fah - 32; Cel = Cel*n;
谁能告诉我为什么发生这种情况,我认为至少将其声明为double会返回值。如果有人知道,那就可以解决。
int默认情况下,Java中的数字是。因此,当您这样做时5/9,由于它们都是ints,您将得到0.something,并且由于这是一个int,因此将仅存储0。解:
int
5/9
double s = 5.0/9; //or 5d/9
请注意,您只能 显式地 投射一侧,而另一侧将被 隐式 投射。
现在,以某种double方式进行计算,您将获得所需的结果。
double