The following code segment is intended to round val to the nearest integer and print the result. double val = -0.7; int roundedVal = (int) (val + 0.5); System.out.println(roundedVal); Which of the following best describes the behavior of the code segment? Responses The code segment works as intended. The code segment works as intended. The code segment does not work as intended because val and roundedVal should be declared as the same data type. The code segment does not work as intended because val and roundedVal should be declared as the same data type. The code segment does not work as intended because the expression (val + 0.5) should be cast to a double instead of an int. The code segment does not work as intended because the expression (val + 0.5) should be cast to a double instead of an int . The code segment does not work as intended because val should be cast to an int before 0.5 is added to it. The code segment does not work as intended because val should be cast to an int before 0.5 is added to it. The code segment does not work as intended because the expression (int) (val + 0.5) rounds to the nearest integer only when val is positive.