在java中将华氏度转换为摄氏度

时间:2014-04-14 06:31:05

标签: java

我正在尝试将华氏度转换为Celsius.Now我有一个错误,当我使用它时:

double fahrenheit=input.nextDouble();

double celsius= ( **5** /9)*(fahrenheit-32);(Error)

然后我再次尝试(5.0)那么它的工作原因是什么?

3 个答案:

答案 0 :(得分:7)

值“5”和“9”是整数,5/9被视为0而不是0.55,这就是您得错答案的原因。当两个整数分开时,答案自动为floor()。有必要将'5'和'9'中的任何一个写为5.0和9.0

更好的做法是始终将其同时写为5.09.0,或将其写为double(5)double(9) 由于乘法和其他操作大部分是递归的,因此该语句也可以正常工作。 (fahrenheit-32)*5/9;因为语句以双值

开头

答案 1 :(得分:3)

当您划分5/9时,您将获得integer输出,因为59都是integers。但是您要划分5.0/9然后你将integer潜水倍值,所以输出是双倍的

您也可以(double)5/9

答案 2 :(得分:2)

  

然后我再次尝试给予(5.0)那么它的工作原因是什么?

5 / 9除以整数(整数),并为您提供结果05.0 / 9除以双打(可以包含小数部分的数字),因此您得到了正确的结果0.5555555555555556