Search code examples
javacomputation

How to fix computation errors?


I'm trying to write a program that reads 2 numbers from the user and divides them. Here is the code I have so far:

import java.util.Scanner;

public class divideByZero {

public static int quotient(int numerator, int denominator)
{
   return numerator / denominator;
}

public static void main(String args[])
{
   Scanner scanner = new Scanner(System.in);

    System.out.print("Please enter the first number: ");

    int numerator = scanner.nextInt();

    System.out.print("Please enter the second number: ");

    int denominator = scanner.nextInt();

    int result = quotient( numerator, denominator );

    float result2 = (float)result;

    System.out.printf("\n The first number %d divided by the second number "
            + "%d = %f\n", numerator, denominator, result2 );

}

I'm having problems with the computations. For example, when I enter 3 divided by 4, I get the result 0.000000. How do I get the correct result to 2 decimal places?


Solution

  • Cast the numerator and denominator as floats before you divide them.

    import java.util.Scanner;
    
    public class divideByZero {
    
    public static float quotient(float numerator, float denominator)
    {
       return numerator / denominator;
    }
    
    public static void main(String args[])
    {
       Scanner scanner = new Scanner(System.in);
    
        System.out.print("Please enter the first number: ");
    
        int numerator = scanner.nextInt();
    
        System.out.print("Please enter the second number: ");
    
        int denominator = scanner.nextInt();
    
        float result = quotient( (float) numerator, (float) denominator );
    
        System.out.printf("\n The first number %d divided by the second number "
                + "%d = %f\n", numerator, denominator, result );
    
    }