2017-01-25 8 views
2

CelsiusToFahrenheit.javaファイルのmain()クラスを通してプログラムを実行しようとしています。私はCelsiusToFahrenheitというパブリッククラスを作成しました。クラスが "double"型のパラメータを受け取ると、その入力を受け取り、摂氏の数値を華氏に変換するアルゴリズムを実行することになっています。コードをコンパイルして整数を入力すると、出力はtempOutputに割り当てられたアルゴリズムを反映しません。 1.8によってTEMPCを乗算し、それに32を追加することになっているTEMPC可変出力TEMPC + 32用Javaプログラムが正しい整数値を出力しない

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; 
    } 
} 

任意の与えられた数のI入力:ここでは、コードです。ここでどこが間違っていたのですか?

+0

しかし、これは '(' ')' – AxelH

答えて

3

tempOutput = (tempInput * (9/5)) + 32; - 9/5=1これは整数除算であるためです。浮動小数点除算の使用には、9/5.0または(tempInput * 9/5) + 32;を使用できます。 2番目の方法は、Javaが右から左にあり、double*intdoubleになり、double/intが浮動小数点除算を使用するためです。

CelsiusToFahrenheitの代わりにTemperatureConverterと呼ばれるクラスを追加することもあります。どうして?あなたの現在の名前が改善にあなたを閉じているので。このクラスにはfarenheitToCelsiusを実装しないでください。

+1

を使用したか、または( '' '') 'を削除してから離散的です。 'double * int/int'演算はOKです。 PS:昨日、JLSのリファレンスを使用して、この作業の仕方を説明するために、昨日重複して回答を追加しました。私はこれを改善するためにまだいくつかのヒントが必要だと思います。 – AxelH

関連する問題