Fahrenheit to Celsius conversion yields only 0.0 and -0.0

后端 未结 5 1923
不思量自难忘°
不思量自难忘° 2020-12-02 01:06

I\'m on the 8th chapter (Methods, Constructors, and Fields) of my Java methods book and I\'m having a problem with one of my exercises.

The provided code is Tempera

相关标签:
5条回答
  • 2020-12-02 01:27

    The problem seems to be 5/9. They are seen as an integer, and 5/9 is 0.something which is 0 as an integer. So whatever * 0 = +-0 :)

    Place a "d" after the numbers, (5d/9d) forcing the compiler to consider them doubles.

    0 讨论(0)
  • 2020-12-02 01:34

    change (5 / 9) to (5.0 / 9.0) to let java know, that you want real numbers division.

    0 讨论(0)
  • If you don't return anything set the return type to void. If you like to return doubles, you have to use doubles in calculations. 5/9 is always zero because 5 and 9 are integers. 5.0/9.0 is a different calculation on doubles.

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.text.DecimalFormat;
    
    public class FCConverter
    {
      private double Celsius;
      private double Fahrenheit;
      public void setFahrenheit (double degrees)
      {
         Celsius = (degrees - 32.0) * (5.0 / 9.0);
      }
      public double getCelsius ()
      {
          return Celsius;
      }
      public void setCelsius (double degrees)
      {
          Fahrenheit = (degrees * 9.0 / 5.0 + 32.0);
      }
      public double getFahrenheit ()
      {
          return Fahrenheit;
      }
    }
    
    0 讨论(0)
  • 2020-12-02 01:44

    In integer math (5 / 9) = 0.

    and (degrees - 32) * (5 / 9); will always be 0 you need to use doubles or something.

    0 讨论(0)
  • 2020-12-02 01:44
    import java.util.Scanner;
    public class HelloWorld {
    
        public static void main(String[] args) {
            Scanner reader = new Scanner(System.in);  // Reading from System.in
    
            System.out.println("Enter  the number of Fahrenheit temperatures to convert to Kelvins");
    // opts for the user to enter a number 
    
            int F = reader.nextInt() ; // Scans the next token of the input
            double f = 5/9d;
            System.out.println(f);
            double x = F -32;
            System.out.println(x);
            double K = (f*x)+ 273.0; // the formulae to calculate temperature  in Kelvin
            System.out.println( +F + " Fahrenheit is equal " +K + " Kelvins" ) ;
            reader.close();
    
    
    
    
        }       
    
    }
    
    0 讨论(0)
提交回复
热议问题