Machine-translated by Google. Questions are authored in English.
Top

Discussion

Which line rests on a mistaken assumption?

public class Sample18
{
    public static void main(String[] args)
    {
        double total = 0.1 + 0.2;
        assert total == 0.3 : total;
        System.out.println(total);
    }
}

  • A.Nothing here is mistaken.
  • B.assert total == 0.3 : total;
  • C.double total = 0.1 + 0.2;
  • D.System.out.println(total);

Answer: B

Neither operand is exactly representable in binary floating point and their sum lands slightly above 0.3, so the equality is false and the assertion fires on correct arithmetic. Floating-point checks have to allow a tolerance, for example Math.abs(total - 0.3) < 1e-9.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.