该程序假设转换输入temp。从华氏温度到摄氏温度。因此,如果输入为212F,则应显示:
212 deg. F = 100 deg. C
除非我运行程序时输出始终为“0摄氏度”。谁能告诉我这里我做错了什么?我猜它是否与它有关:
double fahrenheit = keyboard.nextDouble();
但即便如此,我也不太清楚为什么。谢谢你的帮助!
import java.util.Scanner; //keyboard input
import java.text.DecimalFormat; //formatting
public class FahrenheitToCelsius {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
//User Input
System.out.println("Please enter temperature (Fahrenheit): ");
double fahrenheit = keyboard.nextDouble();
//Calculations
double celsius = (5 / 9) * (fahrenheit - 32);
//Formatting
DecimalFormat myFormatter = new DecimalFormat("#,###.##");
//Output
System.out.println("\n" + myFormatter.format(fahrenheit)
+ " deg. F = " + myFormatter.format(celsius) + " deg. C");
}
}
答案 0 :(得分:1)
导致整数除法的问题
尝试
double celsius = (5.0 / 9.0) * (fahrenheit - 32.0);