Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Java by (10.2k points)

In another Bruce Eckels exercise in calculating velocity, v = s / t where s and t are integers. How do I make it so the division cranks out a float?

class CalcV {

  float v;

  float calcV(int s, int t) {

    v = s / t;

    return v;

  } //end calcV

}

public class PassObject {

  public static void main (String[] args ) {

    int distance;

    distance = 4;

    int t;

    t = 3;

    float outV;

    CalcV v = new CalcV();

    outV = v.calcV(distance, t);

    System.out.println("velocity : " + outV);

  } //end main

}//end class

1 Answer

0 votes
by (46k points)

Just cast one of the two operands to a float first.

v = (float)s / t;

The cast has higher precedence than the division, so happens before the division.

The other operand will be effectively automatically cast to a float by the compiler because the rules say that if either operand is of floating point type then the operation will be a floating point operation, even if the other operand is integral. Java Language Specification, §4.2.4 and §15.17

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Browse Categories

...