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

Discussion

What will be the output of the program?

public class Fragment30
{
    public static void main(String[] args) throws Exception
    {
        System.out.println(0.1 + 0.2 == 0.3);
        System.out.println(0.1 + 0.2);
    }
}

  • A.The program prints true, then 0.3
  • B.false, then 0.30000000000000004
  • C.The program prints false, then 0.3
  • D.true, then 0.30000000000000004

Answer: B

Neither operand is exactly representable in binary, and their sum lands slightly above three tenths, so the equality is false and printing the sum shows the excess digits. Floating-point comparisons need a tolerance rather than exact equality.

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

Post your comment

Please log in or register to post a comment.