我正在尝试将华氏度转换为摄氏温度。现在当我使用此方法时出现错误:
double fahrenheit=input.nextDouble(); double celsius= ( **5** /9)*(fahrenheit-32);(Error)
然后再次尝试给定 (5.0), 那么为什么工作?
值“ 5”和“ 9”是整数,并且将5/9视为0,0.55这是为什么您得到错误答案的原因。当两个整数相除时,答案是floor()自动的。有必要将“5”和“ 9”之一写为5.0和9.0
0
0.55
floor()
更好的做法是始终将as 5.0和9.0or都写为double(5)and。double(9) 由于乘法和其他运算大多是递归的,因此该语句也可以正常工作。 (fahrenheit-32)*5/9;因为语句以双精度值开头
5.0
9.0
double(5)
double(9)
(fahrenheit-32)*5/9;