Java程序未输出正确的整数值[重复]

Posted

技术标签:

【中文标题】Java程序未输出正确的整数值[重复]【英文标题】:Java program not outputting correct integer value [duplicate] 【发布时间】:2017-01-25 06:35:50 【问题描述】:

我正在尝试通过我的 CelsiusToFahrenheit.java 文件中的 main() 类运行程序。我创建了一个名为CelsiusToFahrenheit 的公共类,当该类接收到“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。我这里哪里出错了?

【问题讨论】:

但这是离散的,因为您使用了( ) 【参考方案1】:

tempOutput = (tempInput * (9 / 5)) + 32; - 9/5=1 因为它是整数除法。您可以使用9/5.0(tempInput * 9 / 5) + 32; 来使用浮点除法。第二种方法可行,因为 java 是从左到右的,double*int 将是 double,而double/int 将使用浮点除法。

我还要补充一点,你的班级应该叫TemperatureConverter 而不是CelsiusToFahrenheit。为什么?因为您现在的名字使您无法获得改进。你不应该在这个类中实现farenheitToCelsius,你将来可能会这样做。

【讨论】:

或者去掉()就行了。操作double * int / int 就可以了。 PS:我昨天使用 JLS 参考在副本上添加了一个答案来解释它是如何工作的。我认为仍然需要一些提示来改善这一点。

以上是关于Java程序未输出正确的整数值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

尽管正确打印出所有输出,但程序未在 Java 中以退出代码 0 结束

ZZNUOJ_用Java编写程序实现1538:都是素数么(附源码)

2018/12/4 L1-004 java实现

《Lua程序设计》之 数值

在java中添加项目的整数值。

如何在 Android Java 中将 Color.RED 代码转换为颜色的整数值? [复制]