Java 程序没有输出正确的整数值
Java program not outputting correct integer value
我正在尝试通过 CelsiusToFahrenheit.java 文件中的 main() class 运行 程序。我创建了一个名为 CelsiusToFahrenheit 的 public class,当 class 接收到 "double" 类型的参数时,它应该接受该输入并 运行 通过一个将摄氏度数转换为华氏度数的算法。当我编译代码并输入一个整数时,输出不反映分配给 tempOutput 的算法。这是代码:
import java.util.Scanner;
public class CelsiusToFahrenheit {
public static double convertCelsiusToFahrenheit(double tempInput) {
double tempOutput = 0.0;
tempOutput = (tempInput * (9 / 5)) + 32;
return tempOutput;
}
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
double tempF = 0.0;
double tempC = 0.0;
System.out.println("Enter temperature in Celsius: ");
tempC = scnr.nextDouble();
tempF = convertCelsiusToFahrenheit(tempC);
System.out.print("Fahrenheit: ");
System.out.println(tempF);
scnr.close();
return;
}
}
我为 tempC 变量输入的任何给定数字在应该将 tempC 乘以 1.8 然后加上 32 时输出 tempC + 32。我哪里错了?
tempOutput = (tempInput * (9 / 5)) + 32;
- 9/5=1
因为它是整数除法。您可以使用 9/5.0
或 (tempInput * 9 / 5) + 32;
来使用浮点除法。第二种方法可行,因为 java 是从左到右,double*int
将是 double
,而 double/int
将使用浮点除法。
我还要补充一点,你的 class 应该叫 TemperatureConverter
而不是 CelsiusToFahrenheit
。为什么?因为您当前的名字使您无法进行改进。您不应该在此 class 中实现 farenheitToCelsius
,您将来可能想这样做。
我正在尝试通过 CelsiusToFahrenheit.java 文件中的 main() class 运行 程序。我创建了一个名为 CelsiusToFahrenheit 的 public class,当 class 接收到 "double" 类型的参数时,它应该接受该输入并 运行 通过一个将摄氏度数转换为华氏度数的算法。当我编译代码并输入一个整数时,输出不反映分配给 tempOutput 的算法。这是代码:
import java.util.Scanner;
public class CelsiusToFahrenheit {
public static double convertCelsiusToFahrenheit(double tempInput) {
double tempOutput = 0.0;
tempOutput = (tempInput * (9 / 5)) + 32;
return tempOutput;
}
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
double tempF = 0.0;
double tempC = 0.0;
System.out.println("Enter temperature in Celsius: ");
tempC = scnr.nextDouble();
tempF = convertCelsiusToFahrenheit(tempC);
System.out.print("Fahrenheit: ");
System.out.println(tempF);
scnr.close();
return;
}
}
我为 tempC 变量输入的任何给定数字在应该将 tempC 乘以 1.8 然后加上 32 时输出 tempC + 32。我哪里错了?
tempOutput = (tempInput * (9 / 5)) + 32;
- 9/5=1
因为它是整数除法。您可以使用 9/5.0
或 (tempInput * 9 / 5) + 32;
来使用浮点除法。第二种方法可行,因为 java 是从左到右,double*int
将是 double
,而 double/int
将使用浮点除法。
我还要补充一点,你的 class 应该叫 TemperatureConverter
而不是 CelsiusToFahrenheit
。为什么?因为您当前的名字使您无法进行改进。您不应该在此 class 中实现 farenheitToCelsius
,您将来可能想这样做。