初学者问题。
这可能更像是一个数学问题,我将代码排序,但我不知道为什么解决方案有效。请帮忙解释一下:
如你所知,从摄氏度到华氏度的转换公式是
F=C*9/5+32
现在,我正在尝试编写一个简单的Java代码来进行转换,并且我将摄氏和farenheit定义为double和最终变量
final double MAGIC_NUMBER=9/5;
然后计算转换
farenheit=celsius*MAGIC_NUMBER+32;
结果是24.0摄氏度= 56.0华氏度 - 这是不正确的
我尝试用不同的方式定义相同的东西:
final double MAGIC_NUMBER=1.8;
结果是24.0摄氏度= 75.2华氏度 - 这是正确的。现在,1.8与9/5相同。为什么第二个分配工作而不是第一个?
以下是整个代码:
package farenheit;
import java.util.Scanner;
public class Farenheit {
public static void main(String[] args) {
//declare variables
double celsius;
double farenheit;
final double MAGIC_NUMBER=1.8;
//prompt user to give me the temperature in celsius
Scanner in=new Scanner(System.in);
System.out.print("temperature in celsius= ");
celsius=in.nextDouble();
//calculate the conversion
farenheit=celsius*MAGIC_NUMBER+32;
//print out the result
System.out.printf("%.1f celsius = %.1f farenheit \n", celsius, farenheit);
}
}
谢谢!