Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

silversteed

  • 3 years ago

x = 10.0 for i in range(10): x +=0.1 print x == 11.0 Why is this false? I print x and it equals 11.0

  • This Question is Open
  1. rsmith6559
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    Floating point is basically a binary scientific notation. It's accuracy is greatest when dealing with numbers that are close to a power of 2. A number like 11.0, although it prints as 11.0, is probably several ten thousandths off. That's enough so that it doesn't compare equal to your literal 11.0.

  2. hootenanny
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    At the point in the lecture series where I'm at, the prof alludes to a future lecture that discusses the internal representation of reals ie floating point. I'm guessing that if there's a function that can specify that the real number be accurate to the nearest tenth then I imagine this code snippet could work.

  3. hootenanny
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    I found this technical explanation http://docs.python.org/2/tutorial/floatingpoint.html#tut-fp-issues

  4. silversteed
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Thank you for the answer. I thought that was the reason for this output. Didn't expect it on a practice quiz.

  5. Not the answer you are looking for?
    Search for more explanations.

    • Attachments:

Ask your own question

Sign Up
Find more explanations on OpenStudy
Privacy Policy