Area of Triangle, Java

29,464

1/2 is being computed in integer arithmetic, so like with all integer division, it's truncated -- in this case, to 0. Just write 0.5 and you'll be fine.

Share:
29,464
user1294476
Author by

user1294476

Updated on June 29, 2021

Comments

  • user1294476
    user1294476 almost 3 years

    I'm trying to build an app which computes the area of a triangle, as per my homework assignment. Not quite sure where I'm going wrong, but I input the lengths of the triangle and would like the proper area displayed according to Heron's formula: sqrt (s(s-a) (s-b) (s-c)). All I'm getting for output is -0.0. Here is the code:

    import java.lang.Math;
    public class Formula
    {
        double area; double s;
        public double findArea(double sideA, double sideB, double sideC)
        { 
            s = 1/2 * (sideA + sideB + sideC);
            area = Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC));
            System.out.println("The area of the triangle is " + area);
            return area;
        }
    }
    

    And then I have another file for the main args

    import java.util.Scanner;
    
    public class findTriangleArea {
    
        /**
         * @param args
         */
    
        public static void main(String[] args) {
    
            // TODO Auto-generated method stub
            Formula triangle = new Formula();
            double a,b,c;
    
            // input triangle lengths a, b, c 
            Scanner inputTriangle = new Scanner(System.in);
            System.out.println("Please enter triangle side a");
            a = inputTriangle.nextDouble();
            System.out.println("Please enter triangle side b");
            b = inputTriangle.nextDouble();
            System.out.println("Please enter triangle side c");
            c = inputTriangle.nextDouble();
            triangle.findArea(a, b, c);
        }
    }
    
  • Greg Hewgill
    Greg Hewgill about 12 years
    Or alternately, 1.0/2, or (sideA + sideB + sideC) / 2.
  • user1294476
    user1294476 about 12 years
    Thanks! Worked like a charm.