Difficulty: Easy
Correct Answer: 43
Explanation:
Introduction / Context:
This snippet chains parsing, formatting, and rounding. The key is understanding that Math.ceil
rounds up to the nearest integer (as a double) and that casting to int
then truncates toward zero, preserving the rounded integer value in this case.
Given Data / Assumptions:
s = "42"
, then s.concat(".5")
→ "42.5".Double.parseDouble("42.5")
succeeds, producing 42.5.Math.ceil(42.5) = 43.0
.
Concept / Approach:
Double.valueOf(s).doubleValue()
is redundant after parsing, but it returns the same double. Math.ceil
returns a double whose value is the smallest integer greater than or equal to the argument. Casting this value to int
simply yields that integer.
Step-by-Step Solution:
Verification / Alternative check:
Had the code used Math.floor
, the result would be 42. Using Math.round(42.5)
would yield 43 as well (ties go to +∞ for positive halves in Java’s round-to-nearest-even? Actually, round(42.5) = 43 in Java).
Why Other Options Are Wrong:
ceil
and integer casting.Double
.
Common Pitfalls:
Expecting a NumberFormatException from "42.5"; that would occur for Integer.parseInt
, not Double.parseDouble
.
Final Answer:
43
Discussion & Comments