我正在尝试用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;
任何人都可以告诉我为什么会发生这种事情,我认为至少将它声明为双重会返回一个值.如果有人知道,可以绕过它.
int
Java中默认使用数字.所以当你这样做时5/9
,因为它们都是int
s,你会得到0.something,因为这是一个int
,所以只存储0.解:
double s = 5.0/9; //or 5d/9
请注意,您只能显式地转换一侧,另一侧将被隐式转换.
现在计算将以某种double
方式进行,您将获得所需的结果.